std ::数组的目的是什么?[?

问题描述 投票:3回答:1
[我发现std::array<T, 0>的std :: array中有模板的部分专业化。

template <typename T> struct array<T, 0> { //... typedef typename conditional<is_const<_Tp>::value, const char, char>::type _CharType; struct _ArrayInStructT { _Tp __data_[1]; }; alignas(_ArrayInStructT) _CharType __elems_[sizeof(_ArrayInStructT)]; //... }

那么实现std::array<T, 0>的目的是什么?

非常感谢!

c++ c++11 stl
1个回答
0
投票
原因是简单性。当您编写模板时,总是可以编写std::array<Ty, N>而不是在N为0时编写特殊情况要容易得多。这种一致性经常出现:new int[0]operator new(0),[ std::malloc(0)为0时为for (int i = 0; i < N; ++i)
© www.soinside.com 2019 - 2024. All rights reserved.