C++ Primerで指定されたフォールドコードが正しくありませんか?ostream_iteratorに適用すると、後置演算子はlvalueを返しますか?
ostream_iterator<int> out_iter(cout, " ");
for (auto e : vec)
*out_iter++ = e; // the assignment writes this element to cout
cout << endl;
postfix演算子は、参照ではなく古い値を返します。次に、左辺値としてどのように動作させることができますか?
私が間違って
'out_iter ++'は左辺値ではありません。 iteratorの値です。 '* out_iter ++'は左辺値です。 –
演算子の優先順位が誤っています。 '* out_iter ++'は '(* out_ptr)++'ではなく '*(out_iter ++)'を意味します。 –
@ n.m。本気ですか?私が見る限り、 'out_iter ++'も同様に左辺値です。 –