我们可以使用FileStream
初始化std::array<char, 3>
,但如果大小由模板参数= { ' ', ' ', ' ' }
给出,该怎么办?我们不能做std::string::string(size_type count, CharT ch)
之类的事情,用给定的N
填充实例吗?
我应该看看std::integer_sequence
吗?
答案 0 :(得分:3)
您可以使用索引序列:
template <typename T, std::size_t...Is>
std::array<T, sizeof...(Is)> make_array(const T& value, std::index_sequence<Is...>)
{
return {{(Is, value)...}};
}
template <std::size_t N, typename T>
std::array<T, N> make_array(const T& value)
{
return make_array(value, std::make_index_sequence<N>());
}