我有这个代码
auto generate(){
return []<typename T>(T expected)->void{
std::cout << expected << std::endl;
};
}
由于我需要在多个文件中使用该函数,因此无法将其保留为auto,因为出现错误
error: use of ‘auto generate()’ before deduction of ‘auto’
auto f1 = generate();
因此将lambda包含在多个文件中的唯一方法是如果我使用std::function
,但是由于该函数的类型是模板类型,因此我如何声明该函数返回
std::function<typename T, void(T)> generate() {
return []<typename T>(T expected)->void{
std::cout << expected << std::endl;
};
}
^^^不起作用