#include <tuple>
#include <utility>
#include <array>
#include <iostream>
template <typename... TT>
struct Foo {
template <std::size_t... Indices>
struct Baz {
std::tuple<std::array<TT,Indices>...> baz;
};
Baz<0,1,2> bar;
};
int main() {
Foo<int,double,float> foo;
std::cout << std::get<0>(foo.bar.baz).size() << std::endl;
std::cout << std::get<1>(foo.bar.baz).size() << std::endl;
std::cout << std::get<2>(foo.bar.baz).size() << std::endl;
return 0;
}
I2luY2x1ZGUgPHR1cGxlPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPGFycmF5PgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVFQ+CnN0cnVjdCBGb28gewoJdGVtcGxhdGUgPHN0ZDo6c2l6ZV90Li4uIEluZGljZXM+CglzdHJ1Y3QgQmF6IHsKCSAgIHN0ZDo6dHVwbGU8c3RkOjphcnJheTxUVCxJbmRpY2VzPi4uLj4gYmF6OwoJfTsKCUJhejwwLDEsMj4gYmFyOwp9OwoKaW50IG1haW4oKSB7CglGb288aW50LGRvdWJsZSxmbG9hdD4gZm9vOwoJc3RkOjpjb3V0IDw8IHN0ZDo6Z2V0PDA+KGZvby5iYXIuYmF6KS5zaXplKCkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IHN0ZDo6Z2V0PDE+KGZvby5iYXIuYmF6KS5zaXplKCkgPDwgc3RkOjplbmRsOwoJc3RkOjpjb3V0IDw8IHN0ZDo6Z2V0PDI+KGZvby5iYXIuYmF6KS5zaXplKCkgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0=