#include <tuple>
template <typename... Types> class Data
{
std::tuple<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;
}
I2luY2x1ZGUgPHR1cGxlPgoKdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFR5cGVzPiBjbGFzcyBEYXRhCnsKICAgIHN0ZDo6dHVwbGU8VHlwZXMuLi4+IGl0ZW1zOwp9OwoKc3RydWN0IEl0ZW0xCnsKICAgIGludCBhOwp9OwoKc3RydWN0IEl0ZW0yCnsKICAgIGZsb2F0IHgsIHksIHo7Cn07CgpzdHJ1Y3QgSXRlbTMKewogICAgc3RkOjpzdHJpbmcgbmFtZTsKfTsKCmludCBtYWluKCkKewogICAgRGF0YTxJdGVtMSwgSXRlbTI+IGRhdGExOwogICAgRGF0YTxJdGVtMz4gZGF0YTI7Cn0=