Initializing an std::array of non-default-constructible elements?

前端 未结 1 1464
不知归路
不知归路 2021-01-04 23:22

Suppose type foo_t with a named constructor idiom, make_foo(). Now, I want to have exactly 123 foo\'s - no more, no less. So, I\'m thinking about a

相关标签:
1条回答
  • 2021-01-04 23:57

    The usual.

    template<size_t...Is>
    std::array<foo_t, sizeof...(Is)> make_foos(std::index_sequence<Is...>) {
        return { ((void)Is, make_foo())... };
    }
    
    template<size_t N>
    std::array<foo_t, N> make_foos() {
        return make_foos(std::make_index_sequence<N>());
    }
    
    0 讨论(0)
提交回复
热议问题