C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■83887 / 2階層)  C++の条件文に関する評価順番
□投稿者/ 774RR (512回)-(2017/04/19(Wed) 13:01:32)
組み込み型に適用される組み込み演算子 && や || は短絡評価。

JIS X 3014:2003 ISO/IEC 14882:1998 5.14 論理AND 5.15 論理OR
- 左→右の順に評価
- 左の部分式の値が [ AND:false ] [ OR:true ] なら、右の部分式は評価されない
- 左の部分式にある副作用は、右の部分式を評価する前に完了する(一時オブジェクトの解体を除く)

オレオレ operator && を実装すると短絡評価にならないことに注意。

bool operator&&(const T& lh, const T& rh) { ... }
T(0) && T(1);

両辺の T() 一時オブジェクトが両方生成される
T(0) と T(1) のどちらが先に構築されるかは未規定
T(1) が先に生成されても良い
両者の一時オブジェクトの解体は完全式の終了時点
解体は構築と逆順


編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: C++の条件文に関する評価順番 /WebSurfer 返信無し
 
上記関連ツリー

C++の条件文に関する評価順番 / VNM (17/04/18(Tue) 14:15) #83876
Re[1]: C++の条件文に関する評価順番 / 通りすがり (17/04/18(Tue) 15:00) #83877
Re[1]: C++の条件文に関する評価順番 / furu (17/04/19(Wed) 10:47) #83884
Re[1]: C++の条件文に関する評価順番 / shu (17/04/19(Wed) 11:39) #83885
Re[1]: C++の条件文に関する評価順番 / WebSurfer (17/04/19(Wed) 12:18) #83886
│└ C++の条件文に関する評価順番 / 774RR (17/04/19(Wed) 13:01) #83887 ←Now
Re[1]: C++の条件文に関する評価順番 / Jitta (17/04/21(Fri) 09:19) #83896
  └ Re[2]: C++の条件文に関する評価順番 / VNM (17/04/25(Tue) 21:26) #83936 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信