私が達成しようとしているのはこれです:
inline const int size() { return 256; }
int main()
{
int arr[size()];
return 0;
}
しかし、Visual Studioでは、arr [size()]を初期化するときにエラーが発生します。
式は定数値でなければなりません
グローバル変数、マクロ、std :: vectorを使用したり、ヒープ上にarr []を作成したりせずに、私が望むことを達成する方法はありますか?
ドロップinline
し、const
そして追加constexpr
の問題を解決するために、指定の代わりに:
constexpr int size() { return 256; }
これで、次のような配列サイズとして使用できます。
int arr[size()];
C ++(Cではない)では、配列の長さはコンパイル時にわかっている必要があります。const
修飾子は、プログラムの実行中に値が変更されてはならないことを示すだけです。
を使用constexpr
することにより、プログラムの実行前であっても、関数の出力が既知の定数であることを指定します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加