remove_all_extents C++11中引入的类型模板, 把一个数组中的数组类型部分移除掉, 只保留元素类型部分。
int b[5][8]
cout<<typeid(std::remove_all_extents<decltype(b)>::type).name()<<endl;// int
//实现:
template<class _Ty>
struct remove_all_extents
{ // remove all array extents
using type = _Ty;
};
template<class _Ty, size_t _Ix>
struct remove_all_extents<_Ty[_Ix]>
{ // remove all array extents
using type = typename remove_all_extents<_Ty>::type;
};
template<class _Ty>
struct remove_all_extents<_Ty[]>
{ // remove all array extents
using type = typename remove_all_extents<_Ty>::type;
};
本文详细介绍了C++11中的类型模板remove_all_extents,此模板用于从数组类型中移除所有维度信息,仅保留基本元素类型。通过具体示例展示了其用法及内部实现机制。
2000

被折叠的 条评论
为什么被折叠?



