- C++14/C++1z 20
139 :名無しさん@そうだ選挙に行こう[sage]:2014/12/13(土) 12:28:19.76 ID:UaeG+OzW - 順序が未規定なのがツマラン罠になってるから決めようって話なのに、罠増やすような文法足してどうする気だよw
|
- C++14/C++1z 20
144 :名無しさん@そうだ選挙に行こう[sage]:2014/12/13(土) 15:55:04.14 ID:UaeG+OzW - >>141
ひとつの式の中で同じ変数の変更と参照を行ってると警告、としても a = a + 1; すら引っかかるだろうからなあ 実用的な警告の規定はそれはそれで難しそう
|
- C++14/C++1z 20
145 :名無しさん@そうだ選挙に行こう[sage]:2014/12/13(土) 16:19:57.39 ID:UaeG+OzW - そうだな、左辺値参照としての評価は値のロードよりも後回し
a = a + 1; //aの値のロード、+1、aのアドレスのロード、ストア(operator =)の順 func (a++, a, a); //aの値のロード、後ろ2つの引数のpush、a++、最初の引数のpushの順 で、ひとつの式で2回左辺値参照を取ると警告 a = a++; //=と++の両方が左辺値参照を要求するので警告 とかだろうか…… 二つ目の例は>>143の意図と逆だけど、operator=で左辺は後から評価したいだろうから
|
- C++14/C++1z 20
148 :名無しさん@そうだ選挙に行こう[sage]:2014/12/13(土) 17:22:33.54 ID:UaeG+OzW - >>146
CERT(やMISRA他)ルールを守る必要がある気はしないが…… operator+の呼び出し順が未規定だからってfunc(a + 1, b + 1);にも警告出されても困るだろう でも、式だのなんだの適当に書かずに「副作用完了点」は意識するべきだったと反省。そこはありがとう
|
- C++14/C++1z 20
151 :名無しさん@そうだ選挙に行こう[sage]:2014/12/13(土) 18:37:44.24 ID:UaeG+OzW - >>150
C++には演算子オーバーロードという機能があってな……
|