2014年4月21日月曜日

C++のlambdaと変数のキャプチャでクロージャの真似事

C++のlambdaでは、コピーまたは参照によってlambdaの外の変数をキャプチャできるという話に少しだけ追加。

コピーでキャプチャすれば、コピー元のローカル変数が解放された後でも見かけ上は参照できる。ってことは、C++でもクロージャっぽいことができるのではないか?

…なんて思ったのだけれど、よくよく考えたらコピー元のローカル変数より、lambdaで作るローカル関数オブジェクトの方が先に解放されるな。staticに関数オブジェクトを作れば関数オブジェクトの方が長生きするけど、そんなことをした方が良い場面が思い付かない。

0 件のコメント:

コメントを投稿