型
変数の初期化
- =で初期化する形式がCから伝統的に行われてきたが,
- どれを使うか迷うのなら,並びを{}で囲む形式の方を使うとよい.
int i1 = 7.2;
int i2 {7.2};
int i3 = {7.2};
- わざわざ型を明示スべき特殊な事情がない限りは,autoを用いると良い.
- 特殊な事情とは
- その定義が巨大なスコープ中にあり,その型をプログラムの読み手に伝わりやすくしたい
- 変数の値の範囲や精度を明示したい(floatではなくdoubleにしたことなど)
constとconstexprの違い
- C++の定数は2種類ある
- コンパイル時定数
- コンパイル時に値が決定されると規格によって定められた定数
- 固定長配列のサイズやテンプレート引数に指定することができるのは、コンパイル時定数のみ
- C++ において、非 constexpr 変数がコンパイル時定数になるのは、const 修飾された整数型(enum を含む)のみ
- 実行時定数
- constとconstexpr
- constexpr修飾されるとコンパイル時定数となる
- const修飾されると実行時定数
- あわてるな!時とともに全てが明らかになるのだから
- よいプログラムを書くのに,C++のすべての詳細を知る必要はない
- 言語機能ではなく,プログラミング技法に集中しよう