functor

    2热度

    3回答

    我学习如何使用函数,所以我创建了一个,我不明白为什么我的计数器变量在程序结束时为0。 这里的代码: #include"stdafx.h" #include<iostream> #include<vector> #include<algorithm> #include<map> #include<list> using namespace std; class myFunctor

    0热度

    2回答

    我想通过一个mem_fn参数bind但编译器似乎不允许它。 例如这工作正常: accumulate(cbegin(foos), cend(foos), 0, bind(plus<int>(), placeholders::_1, bind(&foo::r, placeholders::_2))); 但是当我尝试使用mem_fn函子我得到错误的页面: accumulate(cbegin(foos

    3热度

    2回答

    所以说,我想做一些constexpr函数,我虽然可以使用bind做到这一点。有什么我失踪? bind为什么不能返回constexpr? 考虑: struct foo { int b() const { return _b; } int a() const { return _a; } int r() const { return _r; } const in

    1热度

    3回答

    我是Haskell的初学者。现在,我试图定义一个数据如下: data Unsure a = Sure a |Error [Char] deriving (Show) 然后试图执行函子是这样的: instance Functor Unsure where fmap f (Sure x) = Sure (f x) fmap f (Error e) = Error e 在我

    0热度

    1回答

    我试图编写一个函数,它需要一对有序的东西并生成另一个有序的东西(按照字典顺序定义)。 但是,我想要得到的“有序类型”是抽象的,而不是OCaml元组。 这很容易处理内联/匿名签名。 (* orderedPairSetInlineSig.ml *) module type ORDERED_TYPE = sig type t val compare : t -> t -> int

    1热度

    1回答

    我只想在这里查看我的理解,我正在通过作为刷新的ML编程元素的函数章节工作,其中一个问题需要编写一个函数,“只需要一个整数b作为输入。 “随着问题声明似乎在暗示 structure HashFn100 = MakeHashFn(struct val i = 100 end); 但不 structure HashFn100 = MakeHashFn(100); :我可以编写如下应用了仿函数。难

    2热度

    2回答

    我写了一个小的函数类,它应该能够通过隐藏一个静态包装函数和一个指向该对象的void指针来调用类成员函数。下面的示例在设置包装函数时由于错误而无法编译。我想要的是一个类成员指针作为模板参数。有人知道那里有什么问题吗? 我认为在调用成员函数时,静态函数中可能存在另一个问题。我不完全知道如何使用模板语法来做到这一点。最小的例子用C++ 11编译启用gcc。 #include <iostream> t

    0热度

    2回答

    从this问题我对functors(函数对象)有了很好的理解;如何初始化并调用它们。我写了一些代码,使这个玩弄我自己的理解 class Foo { private: int x; public: Foo(int x) : x(x) {} int operator()(int y) { return x + y; } }; Foo poo(50); in

    0热度

    1回答

    我有一个仿函数来从一个Comparable模块创建一个Heap模块,并且有一个多态函数将Prim的算法应用到任意标签的图上。理想情况下,我希望能够写出类似如下内容: let prim (graph: 'a graph)= let module EdgeHeap=Heap.Make( struct type t='a edge ... en

    5热度

    2回答

    我想这样做: #include <queue> #include <set> class Comparator { public: Comparator(SomeObject& rTool) : mrTools(rTool) {} bool operator()(const std::string& a, const std::string& b)