Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为泛型函数定义std::函数?_C++_Templates_Functional Programming - Fatal编程技术网

C++ 如何为泛型函数定义std::函数?

C++ 如何为泛型函数定义std::函数?,c++,templates,functional-programming,C++,Templates,Functional Programming,如何为泛型函数或模板函数定义std::函数?例如,我们可以 std::function<bool(int a)> f = [](int a){return a < 0;}; 函数f=[](inta){返回a擦除,这对于大多数应用程序来说似乎是多余的。 很可能你的问题实际上并不需要那么强烈的东西 如果ypu有一组固定的参数类型,那么就有很多解决方案。每种类型?不。是否严格需要使用std::function而不仅仅是auto来存储lambda?您试图实现什么?为支持的每种类型创建

如何为泛型函数或模板函数定义std::函数?例如,我们可以

std::function<bool(int a)> f = [](int a){return a < 0;};
函数f=[](inta){返回a<0;}; 如何将其推广到其他参数类型,如

std::function<bool(auto a)> f = [](auto a){return a < 0;};
std::函数f=[](自动a){返回a<0;};

你没有。这样的构造需要类似于整个C++编译器的类型,该类型被<代码> STD::函数< /> >擦除,这对于大多数应用程序来说似乎是多余的。 很可能你的问题实际上并不需要那么强烈的东西


如果ypu有一组固定的参数类型,那么就有很多解决方案。每种类型?不。

是否严格需要使用
std::function
而不仅仅是
auto
来存储lambda?您试图实现什么?为支持
的每种类型创建一个到零的比较。此外,您的语法是错误的。它应该是
std::function lessThanZero=[](inta){返回a<0;}@StefanoSanfilippo是的,你是对的。你的评论是指语法上的评论还是之前的“你想实现什么”?