最終更新日時(UTC):
が更新

履歴 編集

enum
<memory>

std::pointer_safety(C++11)(C++23で削除)

namespace std {
  enum class pointer_safety {
    relaxed,
    preferred,
    strict
  };
}

この列挙型はC++23で削除された。

概要

pointer_safetyは、ポインタ安全性について、その挙動/規則について確認するための列挙型である。

Safety-Derived なポインタ

"Safety-Derived なポインタ" とは、とても簡単に言うと, ::operator new で確保されたオブジェクトを指しているポインタのことである。これは、トリッキーな実装により得られたポインタと区別するために用いられる。ガベージコレクション ABI では、Safety-Derived なポインタであるかどうかを基準として動作する。

列挙値

各列挙値の説明を以下に示す.

列挙値 説明 対応バージョン
relaxed Safety-Derived なポインタもそうでないポインタも同様に扱われる。 (C++03 までと同じ) C++11
preferred relaxedと同様。ただしリークに関するレポート(ヒント)を実装することを許可する。 C++11
strict この環境では厳密な実装が行われており、Safety-Derived と 非Safety-Derived は区別される。 C++11

バージョン

言語

  • C++11

環境

参照