#pragma once
#include <vector>
template <class T>
std::vector<T> create_vector(T value, size_t size) {
return std::vector<T>(size, value);
}
template <class T, class... Args, class V = std::vector<
decltype(create_vector<T>(std::declval<T>(), std::declval<Args>()...))
>>
V create_vector(T value, size_t size, Args... sizes) {
return V(size, create_vector<T>(value, sizes...));
}
template <class T, class... Args, class V =
decltype(create_vector<T>(std::declval<T>(), std::declval<Args>()...))
>
V initialize_vector(T value, Args... sizes) {
return create_vector<T>(value, sizes...);
}