std::initializer_list<T>::data
ja.cppreference.net より
const T* data() const noexcept;
|
(C++11以上) (C++14以上でconstexpr) |
|
initializer_list 内の先頭要素へのポインタを取得します。return begin(); と同等です。
初期化子リストが空の場合、data() と end() の戻り値は未規定ですが同一です。
戻り値
初期化子リスト内の先頭要素へのポインタ
計算量
定数時間
注記
2026年5月27日現在、libstdc++ は data 関数の追加を P3016R6 からの C++11 に対する欠陥報告として扱わず、data を C++26 以降でのみ追加しています。
例
このコードを実行する
#include <initializer_list>
int main()
{
static constexpr auto il = {42, 24};
static_assert(il.data() == il.begin());
static_assert(*il.data() == 0x2A);
static_assert(il.data()[1] == 030);
}
欠陥報告
以下の動作を変える欠陥報告は、以前に公開された C++ 標準に対して遡及的に適用されました。
| DR | 適用先 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| P3016R6 | C++11 | std::initializer_list data 関数が欠けていた
|
追加した |
関連項目
(C++11) |
先頭要素へのポインタを返す (パブリックメンバ関数) |
(C++11) |
末尾の次の要素へのポインタを返す (パブリックメンバ関数) |