#include template std::vector struct_vector(D d, int a) { std::vector result(a, d); return result; } template std::vector> struct_vector(D d, int a, int b) { std::vector> result(a, struct_vector(d, b)); return result; } template std::vector>> struct_vector (D d, int a, int b, int c) { std::vector>> result(a, struct_vector(d, b, c)); return result; } template auto initialize_vector(D d, Args... args) { return struct_vector(d, args...); }