MSVC2010 のラムダに問題があります。
コンパイルに成功しました:
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で動作しますか?