この質問と回答から - cout << c++ << c; の正解は何ですか?
わかりました
std::cout<<c++<<c;
は次のように評価されます。
std::operator<<(std::operator<<(std::cout, c++), c);
したがって、未定義の動作は、2 つのパラメーターのいずれかが最初に評価される可能性があるという事実から生じます。ここまでは順調ですね。
しかし、なぜstd::operator <<
ですか?なぜstd::ostream::operator <<
呼び出されないのですか?もしそうなら、それは次のように翻訳されませんか
(ofstream::operator<<(c++)) << c;
|
returns ofstream&
これとメソッドチェーンの違いは何ですか:
struct A
{
A& foo();
void goo();
};
//...
A a;
a.foo().goo();
?