• 推力:分配函子的类成员对象以在设备上使用的最佳方法

    之前我曾问过类似的问题,但仍然无法理解如何使函子与类一起工作,因此我需要一些帮助,以了解如何通过函子将主机中的数据正确地传输到设备,以用于推力::变换。我有各种类和数据结构,在函子中需要执行某些数值评估。 注意!:下面的代码仅用于说明问题,在这个问题中,我仅要求提供有关如何获得解决方案的提示/建议。 I have a custom matrix library based on CRTP, for dynamic matrices (dynamic_matrix.cuh): #include <thrust...
  • Last是免费的monoid吗?

    这些免费的半身像通常被视为“列表半身像”。但是,我对其他可能给我们提供免费半身像的可能结构感兴趣。 首先,让我们回顾一下免费monoid的定义。我从来没有完全理解过,如何将自由的半身像定义为遵守半身像法则的结构。我们如何证明某些事情没有遵守规则,但上面已经说过?还是这只是一种直觉? 无论如何,我们将要讲函子。如果某些monoid是免费的,我们可以免费提供仿函数。显然,列表在这里很方便: free :: Set -> Mon free a = ([a], (++), []) Yet, one might c...
  • 编程中是否有任何通用函子(不限于endofunctor)使用?

    编程中是否有任何通用函子(不限于endofunctor)使用? 我知道endofunctor的原因是使结构简单(如monoid或monad)。 最终,我也明白了,所有的值都归结为一种编程语言(例如Hask)的类别,但是我在这里谈论的是同一类别的字符串,数字,布尔值或函数之间的endofunctor。 相关问题: Are all Haskell functors endofunctors? Differences between functors and endofunctors
  • 该技术的名称是什么,它是否违反严格的混叠规则或调用UB?

    我提出了一些代码,这些代码利用了自引用结构(结构的第一个元素是指向将结构实例作为其唯一参数的函数的指针)。 It has been useful for passing disparate routines to another to invoke because the invoking routine doesn't need to know the exact argument makeup of the passed routines (see the process_string call sit...
  • 在泛型函数中使用函子

    我建立了一个通用函数,该函数接受一个特定的容器(在其开始和结束时使用Iterator)和一个谓词(用作某种条件检查的functor)并计算该容器中对的对数谓词条件。 如下 //Counts number of pairs in a container that follow the rule of the Predicate template <typename Iterator, typename Predicate> int countPairs(const Iterator first, const ...
  • 如何确定Haskell中的类型是否为函子?

    我有一个数据类型: data Tree a = Leaf | Branch a (Tree a) (Tree a) I want to determine, and not just for this data type, but for others such as String, if these data types are law-abiding instances of functor (https://hackage.haskell.org/package/base-4.14.0.0/docs...
  • 如何使用C ++函子实现“连接”

    我正在编写代码,以实现类似于Qt的信号/插槽机制(即美化的Observer模式)的轻量级版本,其中我可以将“信号”连接到“插槽”。仅当两个签名相同时才能进行“连接”。每当发出“信号”时,对任何连接的“插槽”的所有调用都将排队等待在以后的适当线程中执行。 我对此主题进行了大量研究,并且了解可以通过将Functor和模板进行某种组合来实现我想要的功能。但是,我无法弄清楚如何使所有事情都按我希望的方式工作。另外,这是在嵌入式处理器上使用的,因此,我不想使用std :: function,正如我所阅读的那样,它具有...
  • C ++自定义比较函子

    我正在尝试将自定义函子传递到std :: map中。 因此,我在HEADER文件中声明了以下仿函数和其成员是映射的类。 class Comp { bool g; public: Comp(bool greater) : g(greater) {} bool operator()(float lhs, float rhs) const { if (g) return ...
  • 替换std :: greater和其他

    在我的C ++代码中,我编写了两个函子,可以将它们用作函数的参数。像这样: template<class T> class MyGreater{ public: bool operator()(const T &value1, const T &value2) { return value1 > value2; } }; template<class T> class MyEquall{ public: bool operator()(const T &va...
  • C ++函子,有效的方法吗?

    在我的C ++代码中,我编写了两个仿函数,它们将参数作为参数,一个返回和,另一个返回减,因此我可以将它们用作函数的参数。像这样: template<class T> class AddValues{ public: T operator()(const T &value1, const T &value2) { return value1 + value2; } }; template<class T> class SubstractValues{ public: ...
  • 在C ++ 11中将函子作为参数

    我要运行以下代码: class SignedSquareRoot { public: int operator()(int val) { return val >= 0 ? sqrt(val) : -sqrt(-val); }; } 因此,我在课堂上写下了以下内容: 宣言: template<class Function> Matrix<T> apply(Function function); 实施: template<class T, class Fun...
公告

《从零开始开发BBS》课程上线啦,快来跟着我一步步搭建属于你的BBS吧。

课程地址:https://www.shiyanlou.com/courses/1436
9折优惠邀请码: ZHwfIjb1

该课程会带领大家一步步的了解并熟悉Go语言开发,如果你是一个Go语言初学者,或者正准备学习Go语言,那么这个课程非常适合你。如果你熟练掌握了本课程中的知识点,相信你就已经入门Go语言开发,并能胜任日常的开发工作了。