2011年2月24日 星期四

Nested capturing in lambda expression

其實這是早已踩過的 bug, 單純留著當紀錄.
int i = 0;
( [&i]() {
    // capture once
    ++i;
    ( [&i]() {
        // capture twice
        ++i;
    } )();
} )();
std::cout << i << std::endl; // 2
來猜猜看上述程式用哪個 compiler 會出錯?

2011年2月2日 星期三

Lambda binding issue in VC10

VC10 的 lambda expression 的 bug 還真多 ... 這應該是我第三次踩到相關的 bug 了吧。
auto f( std::bind( []( int a, int b )->int {
    return a + b;
}, std::placeholders::_1, 2 ) );

f( 1 ); // returns 3