私はちょうど使い方を学んでいてstd::variant
、(原則として)任意の多くのユーザー定義型で構成される型リストを宣言したいと思います。つまり、次のようなもの
template<typename T>
struct MyType{
T x;
};
template<typename T, int N>
MyClass{
public:
MyType<T> y;
int z = N;
double w;
MyClass(double b){
w = b;
}
};
template<typename T>
using my_type_list = std::variant<
MyClass<T,1>, MyClass<T,289>, MyClass<T,13>, ...., MyClass<T,5001>
>;
template<typename T>
std::vector<my_type_list> my_big_list = {
MyClass<T,1> { 2.0 },
MyClass<T,1> { 3.0 },
MyClass<T,289> { 9.4 },
MyClass<T, 13> { 1.3 },
MyClass<T, 5001> {2.5},
MyClass<T, 5001> {3.2},
..... etc....
};
ただし、整数N
は原則として何でもかまいません。
これが可能な方法はありますか?