[解決済み] constexpr externはどのように宣言するのですか?
2023-07-15 14:22:38
質問
変数
extern constexpr
と宣言し、別のファイルでそれを定義することは可能ですか?
試してみましたが、コンパイラはエラーを出します。
の宣言は
constexpr
変数 'i
' は定義ではありません
は.hで定義されています。
extern constexpr int i;
を.cppに記述してください。
constexpr int i = 10;
どのように解決するのですか?
いいえ、できません。規格ではこうなっています(7.1.5項)。
1 constexpr 指定子は、変数または変数テンプレートの定義、関数または関数テンプレートの宣言にのみ適用される。 変数や変数テンプレートの定義、関数や関数テンプレートの宣言、または 関数テンプレートの宣言、またはリテラル型の静的データメンバの宣言にのみ適用されます。 リテラル型の静的データメンバの宣言にのみ適用する(3.9)。関数,関数テンプレート,変数テンプレートの宣言のいずれかが,定数型を持つ場合 関数、関数テンプレート、変数テンプレートの宣言に constexpr 指定子がある場合、そのすべての宣言に constexpr 指定子がなければならない。 の宣言にconstexpr指定子がある場合,その宣言はすべてconstexpr指定子を含まなければならない。[注:明示的な 注:明示的な特殊化は、テンプレート宣言とconstexpr指定子に関して異なる場合がある。 注:明示的な特殊化は、constexpr指定子に関してテンプレート宣言と異なることがあります。関数パラメータを宣言することはできない。 constexpr - end note ]。
標準によって与えられたいくつかの例です。
constexpr void square(int &x); // OK: declaration
constexpr int bufsz = 1024; // OK: definition
constexpr struct pixel { // error: pixel is a type
int x;
int y;
constexpr pixel(int); // OK: declaration
};
extern constexpr int memsz; // error: not a definition
関連
-
[解決済み】 unsigned int vs. size_t
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] switch文の中で変数を宣言してはいけないのはなぜですか?
-
[解決済み] constexpr` と `const` の相違点
-
[解決済み] 関数のパラメータに 'const' を使用する
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】std::stringをconstexprで使用することは可能ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] externとconstの混在
-
[解決済み] C++で静的プライベートメンバを初期化する方法は?
-
[解決済み] インライン変数の仕組みは?
-
[解決済み] CとC++における「const static」の意味とは?
-
[解決済み] C++のヘッダーで定数変数を定義する
-
[解決済み] C++でグローバル定数を定義する