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

履歴 編集

function template
<initializer_list>

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

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

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

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

## 概要

先頭要素を指すポインタを取得する。

## 戻り値

    il.begin()

## 例外

投げない

## 例

    #include <iostream>
    #include <initializer_list>

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

      decltype(init)::iterator it = std::begin(init);

      std::cout << *it << std::endl;
    }

### 出力

    1

## バージョン

### 言語

- 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`