2011-11-15 17 views

答えて

2

strは定数式と見なされますか?

いいえ、そうではありません。 C++ 11では、定数式の概念を一般化するのに役立つ新しいキーワードconstexprが導入されました。​​のStringコンストラクタが十分に小さい場合、それはconstexprと宣言できます。しかし、そのようなコンストラクタは、おそらくそれが適格でないようにメモリを割り当てる必要があります。

+0

上記のケースでは、変数iが変更される可能性があるため、変数iも定数式ではない可能性があります。定数式は、確定して変更されないものでなければなりません。したがって、コンパイラはその値を決定できます。私が困惑しているのは一体型である必要があるということだけです。 const文字列( "abc");のような定数文字列はどうですか? – yapkm01

+0

@ yapkm01:はい、C++ 03では定数式は整数型でなければなりません。 –