一方面使用类型别名和别名模板之间有什么区别,另一方面 using-declaration 定义为如下:
给定命名空间范围中的类定义:
namespace ns1
{
template< typename T >
struct A {};
}
并给出另一个名称空间,它以两种不同的方式引入A
符号。首先是类型别名(别名模板):
namespace ns2
{
template< typename T >
using A = ns1::A< T >; // match type-id
}
第二个是 using-declaration :
namespace ns2
{
using ns1::A;
}
在ns1
范围(重新开放),ns2
范围或外部范围内,ADL和任何其他使用上下文是否有任何区别?