我有一个遗留模板函数,我试图调用它具有一系列具有不同数量参数的函数指针的特化.我正在编写一个我自己的新模板函数,它采用一些任意类型的非捕获lambda,需要将它传递给另一个库.如果我直接执行此操作,则模板解析将失败.但是,如果我明确地将它转换为相关的函数指针类型,那么事情就可以了
那么问题是如何使我的模板代码从lambda的类型获取该函数指针类型或强制显式转换而不显式引用该类型.
只需使用unary-plus将lambda转换为函数指针,如:
auto* f = +[]{ std::cout << "Hello, world!\n"; }; // f is of type void (*)()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
210 次 |
最近记录: |