3
私は以下のことを理解するのが難しいです。なぜ、このコードは(私がfoo2
のデフォルト引数を使用)std :: index_sequenceのデフォルト引数を使用
template <size_t N, size_t... N_i, size_t... M_i>
auto foo2(std::index_sequence<M_i...> = std::make_index_sequence<N>())
{
constexpr size_t values[] = {N_i...};
return A<values[M_i]...>();
}
template <size_t N,size_t... N_i>
auto foo()
{
return foo2<N,N_i...>(std::make_index_sequence<N>());
}
int main()
{
foo<2, 1,2,3>();
}
が、これではないのコンパイルん:事前に
template <size_t N, size_t... N_i, size_t... M_i>
auto foo2(std::index_sequence<M_i...> = std::make_index_sequence<N>())
{
constexpr size_t values[] = {N_i...};
return A<values[M_i]...>();
}
template <size_t N,size_t... N_i>
auto foo()
{
return foo2<N,N_i...>();
}
int main()
{
foo<2, 1,2,3>();
}
感謝を。