次の例を検討してください。
struct B { operator int(); };
template<class T>
struct X:B
{
using B::operator T;
};
GCCはコードを受け入れますが、Clangと MSVC はコードを拒否します。どちらが正しい?
基本型が依存型の場合、すべてのコンパイラがコードを受け入れることに注意してください。
template<class T>
struct B { operator T(); };
template<class T>
struct X:B<T>
{
using B<T>::operator T;
};