コンパイラーが右辺値を期待している状況で左辺値が現れた場合、コンパイラーは、左辺値を右辺値に変換します。
型 T の左辺値 e は、T が関数型または配列型でなければ、 右辺値に変換できます。 変換後、e の型は T になります。 これに対する例外を、次の表にリストします。
変換前の状況 | 結果の振る舞い |
---|---|
T は不完全型である | コンパイル時エラー |
e は、未初期化オブジェクトを参照している | 未定義な振る舞い |
e は、型 T でないオブジェクトを参照している | 未定義な振る舞い |
![]() | 未定義な振る舞い |
![]() | 変換後の e の型は T で、const または volatile によって修飾されていない |
関連参照