template <typename U> class nest1 {};
class cls {
public:
template <typename V> class nest1 {};
template <typename W> class nest2 {
public:
void bar(nest1<W> x);
};
};
template <typename W>
void cls::nest2<W>::bar(nest1<W> x) {}
int main(int argc, const char* argv[]) {
cls::nest1<int> x;
cls::nest2<int> y;
y.bar(x);
return 0;
}
dGVtcGxhdGUgPHR5cGVuYW1lIFU+IGNsYXNzIG5lc3QxIHt9OwoKY2xhc3MgY2xzIHsKcHVibGljOgogICAgdGVtcGxhdGUgPHR5cGVuYW1lIFY+IGNsYXNzIG5lc3QxIHt9OwoKCXRlbXBsYXRlIDx0eXBlbmFtZSBXPiBjbGFzcyBuZXN0MiB7CglwdWJsaWM6CgkJdm9pZCBiYXIobmVzdDE8Vz4geCk7Cgl9Owp9OwoKCnRlbXBsYXRlIDx0eXBlbmFtZSBXPgp2b2lkIGNsczo6bmVzdDI8Vz46OmJhcihuZXN0MTxXPiB4KSB7fQoKCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pIHsKCWNsczo6bmVzdDE8aW50PiB4OwoJY2xzOjpuZXN0MjxpbnQ+IHk7Cgl5LmJhcih4KTsKCglyZXR1cm4gMDsKfQo=