【C++】STL(Standard ..
175:デフォルトの名無しさん
09/03/10 23:08:36
>>136,143
URLリンク(www.open-std.org)
今のドラフトでは以下の記述が追加されている。
> algorithms that take function objects as arguments are permitted to copy those function objects freely
アルゴリズム内でどうコピーされるかは基本的に実装任せってことになるらしい。
for_each() の戻り値はまったく使えないことになりそうだ。
176:デフォルトの名無しさん
09/03/14 16:56:46
>>175
for_eachの戻りはコピーされた関数オブジェクトに内部状態が反映されてるんじゃなかった?
177:デフォルトの名無しさん
09/03/14 18:17:17
>176
関数オブジェクトに全要素を通して処理した結果の状態が保持されていることを期待するだろうが、
極端に言えば各要素の呼び出し毎に新しくコピーした関数オブジェクトを渡されたりすると、期待する
結果と異なる。
参照使うなりコピーされても大丈夫なようにはできるからまったく使えないは言い過ぎ。
とはいえ、そういう用途なら accumulate 使えばいいじゃん、とは思う。
178:デフォルトの名無しさん
09/03/14 18:22:46
boost::ref使って渡せばいいんじゃないか。boost::mpl::for_eachではうまくいった
179:デフォルトの名無しさん
09/03/18 22:23:42
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5037日前に更新/46 KB
担当:undef