SUSHIにケーキという滅茶苦茶炭水化物過剰な食事、しかもその直前に朝昼食べ逃したのでバナナを喰ってるという最悪な流れ…血糖値が!! 血管壁が!!
14078322 journal torlyの日記: age=age++; 7 日記 by torly 2019年12月27日 21時05分 SUSHIにケーキという滅茶苦茶炭水化物過剰な食事、しかもその直前に朝昼食べ逃したのでバナナを喰ってるという最悪な流れ…血糖値が!! 血管壁が!!
age=の部分 (スコア:0)
なんかの意味か意図があるのだろうか?
# おめでとうございます
毎年書いてるけど (スコア:1)
・C++17では未定義ではなくなって年齢が増えないことが確定した
・正確には一瞬増えてからもとに戻る
・ageがvolatileでなければ最適化により結局何もしないかもしれない
・operator++やoperator=が定義されていたら字面からはまったくわからない動作をするかもしれない
・C++17からは演算子オーバーロードされていても、組み込み演算子の場合と同じ評価順が保証されるようになった
・JavaやECMAScriptもC++17と同様、年齢は増えない
・C言語ではまだ未定義だったはず
Re: (スコア:0)
> ・C++17では未定義ではなくなって年齢が増えないことが確定した
あ、たとえばageがint型で値がINT_MAXだったら(整数オーバーフローにより)相変わらず未定義。C++17では ++ が = に対してsequenced beforeになったって話ね。
Re: (スコア:0)
Re: (スコア:0)
++ageだとまずまちがいなく歳くってしまうだろ。
規格上はage++とおなじ扱いにはなってるだろうけど、age=++age;と++age;とで結果が異なる実装は考え辛い。
Re: (スコア:0)
> age=++age;と++age;とで結果が異なる実装は考え辛い。
近頃のコンパイラーは未定義動作を見つけるや(GCC拡張の)__builtin_unreachableであるかのように扱ったりするから油断ならんぞ
Re: (スコア:0)
某匿名掲示板にニュース・ΜL キチガイリストというスレがあってだな…