我在MSVC2010中遇到lambdas问题。
成功编译:
auto f1 = []() { };
boost::function<void()> a = f1;
但它带来了错误C2440:
auto f2 = []()
{
auto f3 = []() { };
boost::function<void()> b = f3;
};
错误C2440:
'initializing' : cannot convert from 'int' to 'boost::function<Signature>'
with
[
Signature=void (void)
]
No constructor could take the source type, or constructor overload resolution was ambiguous
为什么呢?它在GCC4.6中有效吗?
答案 0 :(得分:0)
可能是MSVC中的一个错误(错误消息似乎非常可疑)。它适用于GCC 4.7。