gpt4 book ai didi

c++ - std::array 的读取范围

转载 作者:行者123 更新时间:2023-11-28 05:58:04 25 4
gpt4 key购买 nike

我如何接受可能具有不同维度的 std::array?这应该在编译时知道,但以下将不起作用

template<int n>
void read_interval(size_t start, size_t end, std::array<n, char>& dest)

我也知道 end-start == n 所以这也可能以某种方式模板化。

最佳答案

std::array 的模板参数错误,非类型参数是 std::size_t,而不是 int :

template<std::size_t n>
void read_interval(size_t start, size_t end, std::array<char,n>& dest)
{
//...
}

您不能静态地确保 end - start == n 因为 startend 是运行时值。如果您确实需要静态保证,则需要将它们设为模板参数,否则您可以使用运行时断言进行 Debug模式或执行检查并抛出异常。

关于c++ - std::array 的读取范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33798927/

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