最終更新日時(UTC): 2026年01月31日 04時25分25秒
Akira Takahashi が更新

履歴 編集

function template
<initializer_list>

# std::end (非メンバ関数)(C++11)(C++26で削除)

    template <class E>
    const E* end(initializer_list<E> il) noexcept;           // C++11、C++26で削除

    template <class E>
    constexpr const E* end(initializer_list<E> il) noexcept; // C++14、C++26で削除

この関数はC++26で削除された。代わりに`<iterator>`ヘッダで定義される`std::end()`関数を使用すること。`<iterator>`ヘッダの`std::end()`関数経由でメンバ関数の`end()`を呼び出せるため不要である。

## 概要

最後尾要素の次を指すポインタを取得する。

## 戻り値

    il.end()

## 例外

投げない

## 例

    #include <iostream>
    #include <initializer_list>
    #include <algorithm>

    int main()
    {
      std::initializer_list<int> init = {1, 2, 3};

      std::for_each(std::begin(init), std::end(init), [](int x) {
        std::cout << x << std::endl;
      });
    }

### 出力

    1
    2
    3

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.1 ✅
- GCC: 4.7.0 ✅

## 参照

- N3257 Range-based for statements and ADL
- N3471 Constexpr Library Additions: utilities, v3
- P3016R6 Resolve inconsistencies in `begin`/`end` for `valarray` and `braced-initializer-list`