[解決済み] size_t` に含めるべきヘッダーは?
2022-08-14 21:39:46
質問
によると
cppreference.com
size_t
は、いくつかのヘッダで定義されています。
<cstddef>
<cstdio>
<cstring>
<ctime>
また、C++11以降では
<cstdlib>
<cwchar>
まず、なぜこのようなことになるのかが不思議です。と矛盾していないでしょうか。 DRY の原則に反するのでは?
を使用するには、上記のヘッダのうちどれを含めればよいですか?
size_t
? それは全く問題ないのでしょうか?
どのように解決するのですか?
インポートする関数や型を最小限にしたいと仮定すると、私なら
cstddef
は関数を宣言しておらず、6つの型しか宣言していないからです。他のものは特定の領域 (文字列、時間、IO) に焦点を当てており、あなたにとって重要ではないかもしれません。
以下のことに注意してください。
cstddef
のみを定義することを保証しています。
std::size_t
を定義すること、つまり
size_t
を名前空間
std
であるにもかかわらず
は
はこの名前をグローバル名前空間でも提供します (事実上、プレーンな
size_t
).
これに対して
stddef.h
(これは C で利用可能なヘッダでもあります) は、以下のように定義することを保証しています。
size_t
をグローバルな名前空間で定義することを保証し
は
も提供します。
std::size_t
.
関連
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] C++のsize_tとintの違いは何ですか?
-
[解決済み] 未定義、未指定、および実装で定義された動作