template<typename T>
struct A
{
using U = T;
};
template<typename T>
struct B : A<T>
{
B(typename A<T>::U) {} // okay
B(U) {} // error: unknown type name 'U'
};
int main()
{
return typename B<int>::U{}; // okay
}
テンプレート基本クラスのパブリック メンバ タイプがデフォルトで非表示になっているのはなぜですか?