- C++相談室 part117 [転載禁止]©2ch.net
948 :デフォルトの名無しさん[sage]:2015/07/02(木) 23:22:54.12 ID:AiijB2ck - >>946
規格票読んでよ ISO/IEC14882:2003 §25.1 Non-modifying sequence operations §25.1.1 For each ISO/IEC14882:2011 §25.2 Non-modifying sequence operations 25.2.4 For each どちらも変更しないアルゴリズムに分類されている 変更できるのは規格では保証されてない でも変更しても未定義の動作とは書いてないので 変更出来るかもしれないし、出来ないかも知れないと取るべき
| - C++相談室 part117 [転載禁止]©2ch.net
950 :デフォルトの名無しさん[sage]:2015/07/02(木) 23:27:41.27 ID:AiijB2ck - ちなみにgccの該当するヘッダを見てみると
template<typename _InputIterator, typename _Function> _Function for_each(_InputIterator __first, _InputIterator __last, _Function __f) { // concept requirements __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) __glibcxx_requires_valid_range(__first, __last); for (; __first != __last; ++__first) __f(*__first); return _GLIBCXX_MOVE(__f); } としか書かれてないから要素のコピーではなく要素そのものをデリファレンスしてるよね 処理系によるとしか言えない
| - ふらっと C#,C♯,C#(初心者用) Part115©2ch.net
918 :デフォルトの名無しさん[sage]:2015/07/02(木) 23:39:26.50 ID:AiijB2ck - 変わらないんじゃないの?実測するしかないけど
abstructとvirtualの違いだよね?abstructは全てvirtualであるためなのか virtualを付けるとコンパイルエラーになる それからインターフェースのBaseを呼び出す事が出来ない インターフェースは多重継承みたいな事をしたい時に使ってるけど
|
|