将lambda显式转换为函数指针

BCS*_*BCS 1 lambda c++11

我有一个遗留模板函数,我试图调用它具有一系列具有不同数量参数的函数指针的特化.我正在编写一个我自己的新模板函数,它采用一些任意类型的非捕获lambda,需要将它传递给另一个库.如果我直接执行此操作,则模板解析将失败.但是,如果我明确地将它转换为相关的函数指针类型,那么事情就可以了

那么问题是如何使我的模板代码从lambda的类型获取该函数指针类型或强制显式转换而不显式引用该类型.

Nev*_*vin 7

只需使用unary-plus将lambda转换为函数指针,如:

 auto* f = +[]{ std::cout << "Hello, world!\n"; }; // f is of type void (*)()
Run Code Online (Sandbox Code Playgroud)