Skip to content

Latest commit

 

History

History
66 lines (48 loc) · 1.8 KB

std.md

File metadata and controls

66 lines (48 loc) · 1.8 KB

std

  • 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

処理系

関連項目

参照