gpt4 book ai didi

c++ - std::array 的目的是什么?

转载 作者:行者123 更新时间:2023-12-02 03:09:30 25 4
gpt4 key购买 nike

我发现 std::array 中有一个模板部分特化 std::array<T, 0> .

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>的目的是什么? ?

非常感谢!

最佳答案

原因很简单,就是一致性。当您编写模板时,始终能够编写 std::array<Ty, N> 会更容易。而不是必须在 N 时编写特殊情况是 0。这种均匀性经常出现:new int[0] , operator new(0) , std::malloc(0) , for (int i = 0; i < N; ++i)N是 0。

关于c++ - std::array<T, 0> 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60181714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com