2011年4月9日 星期六

Lambda expression issue in VC10

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

沒有留言:

張貼留言