在这个例子中:
template<class T>
struct S : T
{
using T::X;
};
T::X是一个从属名称,指的是 中的成员X。T如果S<T>用 实例化T = X:
struct X
{
X(int) {}
};
...
S<X> s(42);
使用声明会变成继承构造函数吗?
Clang 拒绝代码DEMO,而 g++ 接受它。
请注意,如果我们写:
using T::X::X;
两个编译器都接受代码并将其视为继承构造函数。是否using T::X允许按标准成为继承构造函数?