在 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
基本上就是一个指针和一个长度。
所以我正在查看 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
基本上就是一个指针和一个长度。