我想在std::function
中以所需的std::function
实例作为其参数的lambda
中创建一个lambda
:
template
然后用template
的std::function
改变那个std::function
:
template <class functionT>
functionT make_lambda() {
return [](/* ignore all args */){ std::cout << "my lambda\n"; };
}
我该如何实现?
某些精度:
仅使用带有参数包的通用lambda吞咽并忽略可能提供给它的任何参数:
std::function
如果您可以接受其他电话方式
std::function
您可以使用模板专用化使using function_no_args = std::function<void(void)>;
using function_args = std::function<void(int)>;
make_lambda<function_no_args>()(); // output: "my lambda"
make_lambda<function_args>()(999); // compile error
发挥功能
aliases