C++ 如何为泛型函数定义std::函数?
如何为泛型函数或模板函数定义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::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是的,你是对的。你的评论是指语法上的评论还是之前的“你想实现什么”?