とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

ムーブラムダ

問題

C++11のラムダにてコピーキャプチャだとコストが大きすぎる場合にどうしよう?
ラムダは直接ムーブキャプチャできないし…

解法

ライブラリで解決。
Capture by Move Lambda - C++11 — Gist

auto lambda = create_move_lambda(std::move(obj), [](T param){ /* hogehoge */ });

こんな感じで使えばいいらしい。
T param の部分は obj の参照型とか std::reference_wrapper とか使えばいいみたいですね。