std::remove_extent
我对(visual studio 11)的实施有疑问
template<class _Ty>
struct remove_extent
{
typedef _Ty type;
};
template<class _Ty, unsigned int _Ix>
struct remove_extent<_Ty[_Ix]>
{
typedef _Ty type;
};
template<class _Ty>
struct remove_extent<_Ty[]> //what for?
{
typedef _Ty type;
};
我刚试过这个:std::cout << typeid(int[]).name() << '\n';
输出是:int [0]
,所以我假设_Ty[]
代表_Ty[0]
.
但是专攻的目的是什么_T[0]
,我认为第二种情况已经处理了。
另外,我真的怀疑 ifT [0]
是一个有效的类型,如果是这样,在这种情况下你应该使用它吗?