#include <tuple>
template<typename... T>
struct foo;
template<typename... T>
struct foo<std::tuple<T...>> : T... {};
struct a { int x; };
struct b { int y; };
int main() {
foo<std::tuple<a, b> > f;
f.x = 5;
f.y = 8;
}
I2luY2x1ZGUgPHR1cGxlPgoKdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4Kc3RydWN0IGZvbzsKCnRlbXBsYXRlPHR5cGVuYW1lLi4uIFQ+CnN0cnVjdCBmb288c3RkOjp0dXBsZTxULi4uPj4gOiBULi4uIHt9OwoKc3RydWN0IGEgeyBpbnQgeDsgfTsKc3RydWN0IGIgeyBpbnQgeTsgfTsKCmludCBtYWluKCkgewogICAgZm9vPHN0ZDo6dHVwbGU8YSwgYj4gPiBmOwogICAgZi54ID0gNTsKICAgIGYueSA9IDg7Cn0=