gpt4 book ai didi

c++ - 编译时检查所有数组值是否已填充

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

这个:

constexpr const std::array<int, 3> {{
0,
1
}};

编译正常。

但是如何检查(在编译时)整个数组是否已填满?可能是一些 static_assert

最佳答案

您可以编写一个包装器来为您生成数组并执行检查:

template <typename T, std::size_t N, typename... Ts>
std::array<T, N> make_array (Ts&&... ts) {
static_assert(N == sizeof...(Ts), "Must supply N arguments");
return {{ std::forward<Ts>(ts)... }};
}

但是使用该函数,您也可以从参数中推断出数组的大小:

template <typename T, typename... Ts>
std::array<T, sizeof...(Ts)> make_array (Ts&&... ts) {
return {{ std::forward<Ts>(ts)... }};
}

关于c++ - 编译时检查所有数组值是否已填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39891390/

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