template<typename T, typename U>
struct TemplateClass {
class DefaultU {
T foo;
/* ... */
};
T& baz;
U bar;
/* ... */
};
int main()
{
int a = 0;
TemplateClass<int, int>::DefaultU b;
TemplateClass<int, decltype(b)> foo = {a, b};
}
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4Kc3RydWN0IFRlbXBsYXRlQ2xhc3MgewoJCiAgY2xhc3MgRGVmYXVsdFUgewogICAgVCBmb287CiAgICAvKiAuLi4gKi8KICB9OwogIAogIAogIFQmIGJhejsKICBVIGJhcjsKICAvKiAuLi4gKi8KfTsKCgppbnQgbWFpbigpCnsKCQoJaW50IGEgPSAwOwoJVGVtcGxhdGVDbGFzczxpbnQsIGludD46OkRlZmF1bHRVIGI7CglUZW1wbGF0ZUNsYXNzPGludCwgZGVjbHR5cGUoYik+IGZvbyA9IHthLCBifTsKfQ==