C++ 已删除构造函数和模板

C++ 已删除构造函数和模板,c++,C++,考虑以下几点: 模板 甲级 { 公众: A(INTA) {} A()=删除; }; B类 { 公众: B() { A A; } }; 当然,这段代码不会编译,因为类B的构造函数试图默认构造一个类a对象,而我已经显式删除了该构造函数。一切都很好 但是,如果我将B作为类模板 模板 甲级 { 公众: A(INTA) {} A()=删除; }; 模板 B类 { 公众: B() { A A; } }; 然后代码进行编译,现在看来我可以默认构造类A的实例了 为什么会这样?我错过了什么 谢谢。D'oh!编

考虑以下几点:

模板
甲级
{
公众:
A(INTA)
{}
A()=删除;
};
B类
{
公众:
B()
{
A A;
}
};
当然,这段代码不会编译,因为类B的构造函数试图默认构造一个类a对象,而我已经显式删除了该构造函数。一切都很好

但是,如果我将B作为类模板

模板
甲级
{
公众:
A(INTA)
{}
A()=删除;
};
模板
B类
{
公众:
B()
{
A A;
}
};
然后代码进行编译,现在看来我可以默认构造类A的实例了

为什么会这样?我错过了什么


谢谢。

D'oh!编译器似乎直到尝试从模板实例化一个类时才看到错误

实际上,尝试创建类型为B的对象会产生预期的错误


抱歉,我浪费了你的时间。

那些该死的旧电脑完全按照你说的去做,而不是。。。您希望他们做什么…是有意义的,您可以在实例化之前对