显式转换一个lambda为一个函数指针(Explicitly convert a lambda to

2019-10-19 08:22发布

我有我试图调用具有专业化与不同数量的参数的函数指针摆的传统模板功能。 我在写我自己的是采取一些任意一种非捕捉拉姆达的,需要将它传递给其他图书馆新模板功能。 如果我直接做到这一点,那么模板解析失败。 然而,如果我明确投它是相关的函数指针类型,工作的事情。

那么问题是,如何让我的模板代码得到的拉姆达的类型的函数指针类型或强制显式转换没有明确的引用类型。

Answer 1:

只需使用一元加至拉姆达转化为函数指针,如:

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


文章来源: Explicitly convert a lambda to function pointer
标签: c++11 lambda