最終更新日時: 2026年07月22日 16時08分23秒 (JST)
rotarymars が更新

履歴 編集

function

# ::node_handle::コンストラクタ(C++17)

    node_handle() noexcept : ptr_(), alloc_() {}           // (1) C++17
    constexpr node_handle() noexcept : ptr_(), alloc_() {} // (1) C++26

    node_handle(node_handle&& nh) noexcept;           // (2) C++17
    constexpr node_handle(node_handle&& nh) noexcept; // (2) C++26

## 概要

- (1) : デフォルトコンストラクタ
- (2) : ムーブコンストラクタ

## 効果

(2) : ノードハンドルオブジェクトを `nh.ptr_` で `ptr_` を初期化して構築する。`alloc_`を`nh.alloc_`でムーブコンストラクトする。 `nh.ptr_` に `nullptr` を割り当て、`nh.alloc_` に `nullopt` を割り当てる。

## 戻り値

なし

## 例

    #include <iostream>
    #include <set>
    #include <utility>

    int main()
    {
      std::set<int>::node_type nh;                  // (1)
      // std::set<int>::node_type nh2 = nh;         // コピー構築はできない
      std::set<int>::node_type nh2 = std::move(nh); // (2)
      std::cout << static_cast<bool>(nh2);
    }

### 出力

    0

## バージョン

### 言語

- C++17

### 処理系

- Clang: 7.0.0 ✅
- GCC: 7.1.0 ✅
- ICC: ??
- Visual C++: 2017 Update 5 ✅

## 参照

- Splicing Maps and Sets(Revision 5)
- P3372R3 constexpr containers and adaptors