- std[meta module]
- cpp23[meta cpp]
std
は、すべてのC++標準ライブラリ(C++ライブラリおよびC言語互換ライブラリ)の内容を含むモジュール。
import std;
int main() {
std::println("Hello, world!");
}
ただし、モジュールではマクロをエクスポートできないため、標準ライブラリで定義されるマクロは含まない。
import std;
int main() {
assert(0 < 1); // エラー: assertはマクロなので含まない
}
マクロを使用したい場合、対応するヘッダーファイルをインクルード(または、ヘッダーユニットとしてインポート)する必要がある。
import std;
#include <cassert>
int main() {
assert(0 < 1); // OK
}
このモジュールは、C言語互換ライブラリの内容をグローバル名前空間には導入しない。
import std;
int main() {
std::printf("Hello, world!"); // OK
printf("Hello, world!"); // エラー: グローバル名前空間では定義されない
std::size_t x = 0; // OK
size_t y = 0; // エラー: グローバル名前空間では定義されない
}
グローバル名前空間にも定義を導入したい場合、std.compat
を使用できる。
- C++23
- Clang: ?
- GCC: ?
- ICC: ?
- Visual C++: ?