<分区>
在 C 中你可以做 int a[] = {1,2,3,4,5}
, 但 C++11 std::array<int> a = {1,2,3,4,5}
会给出“模板参数太少”的编译错误。有什么办法解决这个问题吗?
<分区>
在 C 中你可以做 int a[] = {1,2,3,4,5}
, 但 C++11 std::array<int> a = {1,2,3,4,5}
会给出“模板参数太少”的编译错误。有什么办法解决这个问题吗?
最佳答案
你能拥有的最好的是一个make_array
,类似于:
template<typename T, typename...Ts>
constexpr std::array<T, 1 + sizeof...(Ts)> make_array(T&& head, Ts&&...tail)
{
return {{ std::forward<T>(head), std::forward<Ts>(tail)... }};
}
关于c++ - 使用隐含长度初始化 std::array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22073448/