Oczywiście poniższy kod nie jest kompilowany w C++. Ale mam przypadek, w którym chciałbym sparametryzować klasę z zerową lub większą liczbą elementów danych w oparciu o parametry szablonu.Zadeklaruj zmienne składowe z parametru szablonu variadic
Czy mogę zadeklarować klasę, której członkowie zależą od parametrów szablonu wariasu, aby uzyskać dostęp do każdego z nich? lub w inny sposób, aby osiągnąć to, co chciałbym?
To powstało w prawdziwym programie, który rozwiązałem zupełnie inaczej, ale teraz interesuje mnie bardziej abstrakcyjny problem, jak mogłem to zrobić.
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;
}
Zaskakujące jest, to nie wydaje się być duplikatem. – MSalters