参考文献に関するウィキペディアのページを読んでいます。
次のコードが含まれています。
int& preinc(int& x)
{
return ++x; // "return x++;" would have been wrong
}
preinc(y) = 5; // same as ++y, y = 5
return x++;
代わりに を使用してコンパイルしようとしましたreturn ++x;
。予測どおり、これにより次のエラーが発生しました。
エラー: タイプ 'int' のテンポラリからのタイプ 'int&' の非 const 参照の無効な初期化</p>
このエラーがわかりません。x のインクリメントが遅すぎる (つまり、preinc の関数呼び出しが終わった後) という漠然とした直感があります。ただし、変数 x が存在しなくなることはないため、これがどのように問題になるかはわかりません。どんな説明でも大歓迎です。