Очевидно, что код ниже не компилируется в C++. Но у меня есть случай, когда я хочу параметризовать класс с нулевым или большим количеством элементов данных на основе параметров шаблона.Объявить переменные-члены из параметра вариационного шаблона
Есть ли способ объявить класс, члены которого зависят от параметров вариационного шаблона, чтобы я мог получить доступ к каждому из них? или каким-то другим способом добиться того, что я хотел бы?
Это появилось в реальной программе, которую я решил совершенно по-другому, но теперь меня интересует более абстрактная проблема, как я мог это сделать.
template <typename... Types> class Data
{
// Declare a variable of each type in the parameter pack
// This is NOT valid C++ and won't compile...
Types... items;
};
struct Item1
{
int a;
};
struct Item2
{
float x, y, z;
};
struct Item3
{
std::string name;
}
int main()
{
Data<Item1, Item2> data1;
Data<Item3> data2;
}
Удивительно, но это не представляется дубликатом. – MSalters