0
私は、次のしているとしましょう:定数式を整数型に評価する必要がありますか?
int i = 1;
String str("abc");
はstr
定数式を考えるだろうか?
C++の書籍の多くから、定数式は完全な型に評価されなければならないようです。
私は、次のしているとしましょう:定数式を整数型に評価する必要がありますか?
int i = 1;
String str("abc");
はstr
定数式を考えるだろうか?
C++の書籍の多くから、定数式は完全な型に評価されなければならないようです。
strは定数式と見なされますか?
いいえ、そうではありません。 C++ 11では、定数式の概念を一般化するのに役立つ新しいキーワードconstexpr
が導入されました。のString
コンストラクタが十分に小さい場合、それはconstexpr
と宣言できます。しかし、そのようなコンストラクタは、おそらくそれが適格でないようにメモリを割り当てる必要があります。
上記のケースでは、変数iが変更される可能性があるため、変数iも定数式ではない可能性があります。定数式は、確定して変更されないものでなければなりません。したがって、コンパイラはその値を決定できます。私が困惑しているのは一体型である必要があるということだけです。 const文字列( "abc");のような定数文字列はどうですか? – yapkm01
@ yapkm01:はい、C++ 03では定数式は整数型でなければなりません。 –