【Foreach】 Supporting range adaptors for temporary containers
以下のコードでは、auto xに値が入ってくる時点で、string("Hello, world!の")の寿命が尽きている。
BOOST_FOREACH(auto x, std::string("Hello, world!") | reversed) {...}
これは、Rangeアダプタを使用しなければ、BOOST_FOREACHの右辺値対応でstringのコピーが保持されることになるので問題ないのだが、Rangeアダプタは元の変数への参照を持つので問題になる。
現在、Boost MLでアダプタ用のforeah文が提案されている。
・・・文はいつもめんどくさいですね・・・。for_each()関数に渡すなら問題ないのに。