std::initializer_list<T>::empty
От ru.cppreference.net
bool empty() const noexcept;
|
(начиная с C++11) (constexpr начиная с C++14) |
|
Проверяет, пуст ли initializer_list. Эквивалентно return size() == 0;.
Возвращаемое значение
true , если initializer_list пуст, false в противном случае.
Сложность
Константная
Примечания
По состоянию на 2026-05-27, libstdc++ не рассматривает добавление функции empty из P3016R6 как исправление дефекта для C++11 и добавляет empty только начиная с C++26.
Пример
Запустить этот код
#include <initializer_list>
#include <iostream>
constexpr std::initializer_list<int> il1{};
constexpr std::initializer_list<int> il2{3, 1, 4, 1, 5, 9};
int main()
{
static_assert(il1.empty(), "");
static_assert(!il2.empty(), "");
std::cout << std::boolalpha
<< il1.empty() << '\n'
<< il2.empty() << '\n';
}
Вывод:
true
false
Отчёты о дефектах
Следующие отчёты о дефектах, изменяющие поведение, были применены ретроспективно к ранее опубликованным стандартам C++.
| DR | Применён к | Поведение в опубликованном виде | Корректное поведение |
|---|---|---|---|
| P3016R6 | C++11 | std::initializer_list отсутствовала функция empty
|
добавлена |
Смотрите также
(C++11) |
возвращает количество элементов в списке инициализации (public функция-элемент) |