Posts

Showing posts from March 3, 2019

How to set std::array size via parameter pack arguments?

Image
1 I have an N-dimensional Matrix class that has a constructor with a parameter pack. Is it possible to set the size of the std::array member variable depending on the values in the parameter pack? As far as I understand the values in the parameter pack should be known at compile time. template<size_t N> class Matrix { public: template<typename... Exts> Matrix(Exts... exts) : dimSizes{exts...} { } private: std::array<size_t, N> dimSizes; std::array<float, N> data; // e.g something like this: std::array<float, dimSizes[0]> data; }; int main(void) { Matrix<3> mat(2, 3, 2); return 0; } c++ c++11 variadic-templates variadic-functions stdarray