イニシャライザが情報の損失につながる可能性がある場合、コンパイラが組み込み型の初期化変数を許可する理由を誰かに説明してもらえますか?
たとえば、第5版のC ++ Primerによると、初期化子によって情報が失われる可能性がある場合、コンパイラーは組み込み型の初期化変数をリストしません。
しかし、私のコンパイラgcc v 4.7.1a
は、次のコードで変数を正常に初期化しました。
long double ld = 3.1415926536;
int a{ld};
警告がありました:{}[-Wnarrowing]内で'ld'の変換を'longdouble'から'int'に狭めています。