Следующий код компилирует с использованием как Clang, так и GCC, хотя Foo_t<T>::Bar
не имеет typename
перед ним:
struct Foo {
using Bar = int;
};
template<class...>
using Foo_t = Foo;
template<class T>
void f(){
Foo_t<T>::Bar b; // No typename!
}
int main(){
f<int>();
}
Должен ли он компилироваться?