Spec-Zone.ru › C++

std::initializer_list<T>::data

const T* data() const noexcept;
(начиная с C++11)
(constexpr начиная с C++14)

Получает указатель на первый элемент в initializer_list. Эквивалентно return begin();.

Если список инициализации пуст, возвращаемые значения data() и end() не определены, но совпадают.

Возвращаемое значение

Указатель на первый элемент в списке инициализации

Сложность

Постоянная

Примечания

По состоянию на 2026-05-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 добавлена

См. также

begin
(C++11)
возвращает указатель на первый элемент
(открытая функция-член)
end
(C++11)
возвращает указатель на элемент, следующий за последним
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/initializer_list/data

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API