【发布时间】:2013-07-23 05:27:56
【问题描述】:
在以下代码中,对foo 的第一次调用不明确,因此无法编译。
第二个,在 lambda 之前添加 +,解析为函数指针重载。
#include <functional>
void foo(std::function<void()> f) { f(); }
void foo(void (*f)()) { f(); }
int main ()
{
foo( [](){} ); // ambiguous
foo( +[](){} ); // not ambiguous (calls the function pointer overload)
}
+ 符号在这里做什么?
【问题讨论】:
标签: c++ c++11 lambda overloading