C++14 の Initialized lambda captures を試してみた
Clang 3.4(svn) では既に実装されていたので軽く試してみました。
[ソース]
#include <iostream> int main(){ int x = 4; auto y = [&r = x, x = x + 1](){ r += 2; return x + 2; }; std::cout << "x = " << x << " y = " << y() << std::endl; std::cout << "x = " << x << " y = " << y() << std::endl; std::cout << "x = " << x << " y = " << y() << std::endl; return 0; }
[出力]
x = 4 y = 7 x = 6 y = 7 x = 8 y = 7
うーむむ、慣れるまでに時間がかかりそう。
どういう場合に有効的に活用できるだろうか。