【发布时间】:2015-12-19 07:56:29
【问题描述】:
假设我有一些删除了复制构造函数的类:
struct NoCopy
{
NoCopy(int) {}
NoCopy(const NoCopy &) = delete;
};
我在另一个类中使用这个类:
struct Aggregate
{
NoCopy nc;
};
但是当我尝试使用聚合初始化时
int main()
{
Aggregate a{3};
}
编译器输出如下错误:
error: use of deleted function ‘NoCopy::NoCopy(const NoCopy&)’
为什么聚合初始化需要类成员的复制构造函数?聚合初始化是否使用复制构造函数初始化所有成员?
【问题讨论】:
标签: c++ c++11 aggregate-initialization