Final Draftだから以後変わってるかもしれんが: 5.16 - Conditional operator [expr.cond] の-3-の3個目では if E1 and E2 have class type, (中略) If the conversion is applied, E1 is changed to an rvalue of type T2 that still refers to the original source class object (or the appropriate subobject thereof). [Note: that is, no copy is made. ]
― if E1 and E2 have class type, and the underlying class types are the same or one is a base class of the other: E1 can be converted to match E2 if the class of T2 is the same type as, or a base class of, the class of T1, and the cv-qualification of T2 is the same cv-qualification as, or a greater cv-qualification than, the cv-qualification of T1. If the conversion is applied, E1 is changed to an rvalue of type T2 that still refers to the original source class object (or the appropriate subobject thereof). [Note: that is, no copy is made. ]
> If the conversion is applied, > E1 is changed to an rvalue of type T2 that still refers to the original source class object > (or the appropriate subobject thereof). > [Note: that is, no copy is made. ]
no copy is made. in other words, refers to the original source class object.
E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2
つまり >Otherwise, if the second and third operand have different types, > and either has (possibly cv-qualified) class type すら判定していないのだから、その後の型変換だの、 コピーだのが起こりようがない。
俺がプログラマーを始めたころはドモルガンとか常識だったし and or not xorが複雑に入り組んでいても混乱しないやつらばかりだった。 そうじゃないとCとアセンブリ言語のmixed language programmingの 環境についてこれない。
最近の若いやつらは not (not a or b) と a and not b a and not (a and b) と a and not b の置き換えすら満足に思考できない。 論理式の合理化ができないから無意味にネストしたif文を大量に連ねる。 たまに置き換えをやろうとすると高確率で間違ってバグを作ってくれる。 「この一連のif文の意図は何ですか?」「私にも分かりません」
var IE; var ti = 2000; for (i = 0; i < 5; i++) { // ここを適当に修正 IE = WScript.CreateObject("InternetExplorer.Application"); IE.Visible = true; IE.Width = 1280; IE.Height = 930; IE.Navigate("http://members.aol.com/pethumor/insane.swf"); var dstart = (new Date()).getTime(); while (1) if((new Date()).getTime() >= dstart + ti) break; ti = ti * 2 + 1000; }