この例では:
template<class T>
struct S : T
{
using T::X;
};
T::XXのメンバーを参照する従属名ですT。S<T>でインスタンス化されている場合T = X:
struct X
{
X(int) {}
};
...
S<X> s(42);
using 宣言は継承コンストラクタになりますか?
Clang はコードを拒否しますDEMOが、g++ はそれを受け入れます。
次のように書くと注意してください。
using T::X::X;
どちらのコンパイラもコードを受け入れ、継承コンストラクタとして扱います。using T::X標準で継承コンストラクターになることは許可されていますか?