std::initializer_list<T>::empty

来自cppreference.com
 
 
 
 
bool empty() const noexcept;
(C++11 起)
(C++14 起为 constexpr)

检查 initializer_list 是否为空。等价于 return size() == 0;

返回值

initializer_list 为空则为 true,否则为 false

复杂度

常数

注解

到 2026-05-27 为止, libstdc++ 尚未将来自 P3016R6 的添加 empty 函数视为针对 C++11 的缺陷报告,而仅在 C++26 起添加 empty 函数。

示例

#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++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
P3016R6 C++11 std::initializer_list 缺少 empty 函数 已添加

参阅

(C++11)
返回初始化器列表中的元素数目
(公开成员函数) [编辑]