标准对这种情况有什么看法:
template<class C>
struct A {
A(C c = C());
};
struct C {
C(int);
};
A<C> a(C(1));
顺便说一句,Comeau不会引发错误。
最佳答案
如果您不使用默认参数(即,您提供了一个值),则根本不会实例化它。
14.7.1 / 2:
真是满嘴实际上,函数和模板的默认参数本身都具有特定的实例化规则。
关于c++ - C++,没有默认构造函数的默认参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3662450/