jeudi 1 octobre 2015

Place templated std::array

I have a templated class containing a std::array<std::vector<T>, N> data_ member.

Currently, I can construct this with

template<typename T, size_t N>
class A
{
public:
    A(some parameters)
    {
         for (size_t n=0; n<N; n++) {
             data_[n].resize(calculated size from parameters);
         }
    }

private:
    std::array<std::vector<T>,N> data_;
};

Is there some formulation in which I can instead place the initialization of the array in the constructor?

For example, if I used only a vector and then an indexing function, I could have

...
A(some parameters):
    data_(std::vector<T>(N*previous size)) {}
...

Aucun commentaire:

Enregistrer un commentaire