一時オブジェクトにRangeアダプタを適用した結果へのforeach文

【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()関数に渡すなら問題ないのに。