这似乎可以正确编译:
namespace A {
template<typename T>
struct S {};
namespace B {
using S = S<int>;
}
}
int main() {
using namespace A::B;
S s;
}
尽管在行号为using S = S<int>
的地方,第一个S
指的是A::B::S
,而第二个S
指的是模板A::S
。
这是标准的C++吗?