如何将“自动”模板lambda解析为函数

时间:2019-12-27 17:16:06

标签: c++ function lambda auto c++20

我有这个代码

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;
    };
}

^^^不起作用

0 个答案:

没有答案