template<typename T> struct aaa
{
template<typename U> void test() {}
template<typename U> void moge() { this->test<U>(); }
};
int main()
{
aaa<int> a;
a.test<double>();
a.moge<char *>();
}
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IGFhYQp7CiAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIHRlc3QoKSB7fQoJdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBtb2dlKCkgeyB0aGlzLT50ZXN0PFU+KCk7IH0KfTsKCmludCBtYWluKCkKewoJYWFhPGludD4gYTsKCWEudGVzdDxkb3VibGU+KCk7CglhLm1vZ2U8Y2hhciAqPigpOwp9Cg==