为什么以下代码无法编译:
#include <array>
struct A
{
std::array<size_t, 5> i_;
A() {}
A( A const& a)
: i_{ a.i_ } {}
};
int main()
{
A a1;
A a2 = a1;
return 0;
}
GCC 4.8.1 报错:
错误: 在初始化中无法将 'const std::array' 转换为 'long unsigned int': i_{ a.i_ }
std::array
中的元素。整个数组不是一个元素。您甚至不需要显式定义该复制构造函数。 - chris