最終更新日時: 2025年07月10日 10時26分30秒 (JST)
Koichi Murase が更新

履歴 編集

# 更新された定義済みマクロ(C++11)

このページはC++11に採用された言語機能の変更を解説しています。

のちのC++規格でさらに変更される場合があるため関連項目を参照してください。

## 概要

定義済みマクロの値が、以下のように更新された：

マクロ名 | 値 | 説明
--- | --- | ---
`__cplusplus` | `201103L` | C++のバージョン値を表す

以下のマクロが新たに追加された：

マクロ名 | 説明
--- | ---
`__STDCPP_STRICT_POINTER_SAFETY__` | 実装がポインタの厳密な安全性を持っている場合、整数値`1`として定義される 本マクロ定数はC++23で削除される
`__STDCPP_THREADS__` | プログラムが複数のスレッドを実行できる場合、整数値`1`として定義される
`__STDC_MB_MIGHT_NEQ_WC__` | このマクロが整数型の定数`1`として定義されている場合、基本文字集合に含まれる文字のリテラルが、`char`と`wchar_t`で異なる値を持つ可能性がある。 このマクロが定義されない場合には`'x' == L'x'`が`true`であることが保証され、そうでなければされない。

## 関連項目

- C++11 C99互換で導入された定義済みマクロ

## 参照

- N2693 Requirements on programs and backwards compatibility
- CWG Issue 1169. Missing feature macro for strict pointer safety
- P2186R2 Removing Garbage Collection Support
  - C++23でのマクロ`__STDCPP_STRICT_POINTER_SAFETY__`削除