C++ 类型别名和使用声明之间的区别
一方面使用类型别名和别名模板,另一方面使用声明,两者之间有什么区别吗?定义如下: 给定命名空间范围中的类定义:C++ 类型别名和使用声明之间的区别,c++,c++11,types,namespaces,typeid,C++,C++11,Types,Namespaces,Typeid,一方面使用类型别名和别名模板,另一方面使用声明,两者之间有什么区别吗?定义如下: 给定命名空间范围中的类定义: namespace ns1 { template< typename T > struct A {}; } 第二个是使用声明: ADL与ns1scope(重新打开)、ns2scope或外部scope中的任何其他使用上下文是否有任何区别?对于ADL n4527[basic.lookup.argdep]/4.1说,任何使用指令都将被忽略 namespace ns2 { tem
namespace ns1
{
template< typename T >
struct A {};
}
第二个是使用声明:
ADL与
ns1
scope(重新打开)、ns2
scope或外部scope中的任何其他使用上下文是否有任何区别?对于ADL n4527[basic.lookup.argdep]/4.1说,任何使用指令都将被忽略
namespace ns2
{
template< typename T >
using A = ns1::A< T >; // match type-id
}
namespace ns2
{
using ns1::A;
}