最終更新日時: 2025年07月09日 00時33分39秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<iterator>

# std::insert_iterator::コンストラクタ

    insert_iterator(Container& x, typename Container::iterator i);            // C++03
    constexpr insert_iterator(Container& x, ranges::iterator_t<Container> i); // C++20

## 概要

`insert_iterator`オブジェクトを構築する。

## 効果

コンテナ`x`へのポインタをメンバ変数`container`に保持し、挿入位置を示すイテレータ`i`をメンバ変数`iter`に保持する。

- C++11まで : `x`へのポインタは、`&x`で取得する
- C++14以降 : `x`へのポインタは、`std::addressof(x)`で取得する

## 参照

- LWG Issue 2324. Insert iterator constructors should use `addressof()`
- P1032R1 Misc `constexpr` bits
- P0896R4 The One Ranges Proposal (was Merging the Ranges TS)
- P2325R3 Views should not be required to be default constructible