在 initializer_list 上使用数据

Using data on an initializer_list

所以我正在查看 data 函数,我发现它有这个重载:

template <class E>
constexpr const E* data(std::initializer_list<E> il) noexcept;

假设我用以下方式调用 foo(data({ 0, 13, 42 }))

void foo(const int* param) {
    cout << param[0] << ' ' << param[1] << ' ' << param[2] << endl;
}

我实际上是在复制 initializer_list 吗?

是的,您正在复制 initializer_list

但是,您没有复制 "list of integers"。

一个initializer_list基本上就是一个指针和一个长度。