class A { public: A() { ( [&](){ A::dummy; // VC10 compile error } )(); } private: static const int dummy = 0; };
我也不知道怎麼解釋, 看起來是它搞混了實體存取和全域存取, 也就是說它不知道該不該自動補完成 this->A::dummy. 但如果使用 namespace 強制修飾成 ::A::dummy, 或是不使用 wildcard capture 就不會有問題.
class A { public: A() { ( [&](){ A::dummy; // VC10 compile error } )(); } private: static const int dummy = 0; };
沒有留言:
張貼留言