Declarar variáveis de membro do parâmetro do modelo variadic

Obviamente, o código abaixo não compila em C ++. Mas tenho um caso em que gostaria de parametrizar uma classe com zero ou mais itens de dados com base nos parâmetros do modelo.

Existe alguma maneira de declarar uma classe cujos membros de dados dependem de parâmetros variáveis do modelo para que eu possa acessar cada um deles? ou alguma outra maneira de conseguir o que eu gostaria?

Isso surgiu em um programa real que eu resolvi de uma maneira totalmente diferente, mas agora estou interessado no problema mais abstrato de como eu poderia ter feito isso.

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;
}

questionAnswers(4)

yourAnswerToTheQuestion