3

コードhereのいくつかの行を読んだところ、かっこがあるはずです。`copy`実装例の演算子優先度

template<class InputIterator, class OutputIterator> 
    OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result) 
{ 
    while (first!=last) 
    *result++ = *first++; // <--- this line 
    return result; 
} 

は、演算子の優先順位表hereによると、私は後置インクリメントが、その後、間接参照、代入を優先するだろうと思うだろう。しかし、私は、逆参照が最初に起こり、その後に代入が行われ、その後に接頭辞が増えることを意図しているように見えます。

私は間違っていますか?または、テーブルが間違っている、またはコードスニペットですか?それとも何か他にはありますか?

答えて

6

後置インクリメントは最初に実行ず、後置インクリメントからの戻り値ポインタの値です。そういうわけで、それは機能します。

+0

これは、 '*(result ++)= *(first ++); ' –

+0

Ahhhで簡単に確認できます。ありがとうございました。 – sje397

+0

はい。優先順位と評価結果を混同しないでください。 –

関連する問題