所以我在看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吗?
答案 0 :(得分:3)
是的,您正在复制initializer_list
。
但是,您不是在复制“整数列表”。
initializer_list
本质上是一个指针和一个长度。