一个C ++ 11类模板,可以像函数一样调用,并包装另一个可调用类型并转发对它的调用。
我正在尝试弄清楚如何将标准函数作为参数传递。这是一个简短的例子: #包括 #包括 #包括 void bar(const double v, ...
我试图在 C++ (C++17) 中模仿 JavaScript 样式的 Event/EventTarget 操作。 我有一个根据需要工作的 Event 基类,以及一个继承自 Event 的 KeyboardEvent 类。 我的活动Ta...
如何使用 std::function 接受具有不同参数的函数?
我有 2 个函数,first_function,second_function 具有相似的签名。 second_function 采用 2 个附加参数 x、y。 我想创建另一个可以采用
我们可以在自定义类中采用像 std::function 那样的模板类型吗
我正在学习一些基本的 cpp,我发现我们可以将 lambda 函数传递给接受 std::function 的函数,如下所示: int someFunction(std::function sum) { 返回...
为什么将捕获的 lambda 分配给 std::function 会导致更多副本[重复]
在下面的代码中,分配给 std 函数比分配给自动变量导致更多的复制构造函数调用。 (实际上是初始化,而不是分配;)) 我得到了一个捕获的值
我已经实现了一个名为 MethodMap 的类,它允许我存储类的成员函数指针并在运行时使用键字符串调用它们。成员函数可以接受任何参数或 n...
我正在尝试定义显式转换,从某个类到std::函数,就像这样。像这样: #include class ExpInt { private: const int value; public: ExpInt(const int v):value(v){...。
下面的代码会导致分段故障,但我不明白为什么。#include #include #include class State {public:int x; int y; State(int _x, ...
std::function是否像std::shared_ptr和std::unique_ptr一样具有智能性质?我想不是吧?我有一个std::function,它是一个类成员,如下所示。 class MyClass { typedef std::function
std::function对象的C++映射引发 "函数模板专用化失败 "的错误。
我很难解决这个与我的C++学校项目有关的问题。基本上,我需要一个映射,其中键是给定的GUID,值是MyClass的成员函数,这是一个工厂方法 ...
我想设计一种方法来调用许多非常相似的函数中的一个--其中唯一不同的是参数的数量。请记住,这只是我的大问题的一个最小的例子。我有很多...
我想有一个描述函数的类型,允许通过组合现有的函数来创建相同类型的新函数,就像这样。FuncType f; FuncType g; FuncType h = f(g); ...
当用std::future绑定一个std::函数时,调用操作符不匹配。
当我尝试用std::绑定一个std::future 到一个std::函数 )> 我得到一个我不完全理解的编译器即模板错误。在我看来,std::bind ...
如何理解 "std::function "的类型只取决于它的调用签名?
根据文档(http:/www.cplusplus.comreferencefunctionalfunction),其中说到。可以将任何一种可调用元素(如函数和函数对象)包装成......的类。
我试过这样做 { std::function 推;队列 myqueue; push = std::bind(static_cast) ::*)(int)>(&queue) ::push), &...
我是否需要使用unique_ptr而不是std::function?
我有一个工厂返回数据处理的函数 class Factory { function build(); } 现在我很纠结,返回类型是否应该是函数。
我想把一个类的方法(functor的实际工作函数)做成一个shared_ptr。我想把这个指针传递给一个函数调用者。然而,我不能做到这一点。代码......
此代码在(* function)()处崩溃。我正在运行Visual Studio 2019并为Windows 10 x86_64编译C ++ 17。我已经在具有GCC(-std = c ++ 17)的Linux上对其进行了测试,并且工作正常。我想知道这是否是...
我有一个工厂方法返回std :: function类Builder {public:function build(); }和函子对象类Processor {protected:vector ...
class EmulNet {public:int ENrecv(Address * myaddr,std :: function fn,struct timeval * t,int times,void * queue); };类MP1Node {public:int ...