#include<iostream>
#include<string>
class Base
{
public:
std::string Test() { return "hi"; }
};
class Derived : public Base
{
public:
template<typename T= decltype(Test())>
T Test() { return Base::Test(); }
};
int main()
{ std::cout<< Derived().Test(); }
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KIApjbGFzcyBCYXNlCnsKcHVibGljOgogICAgc3RkOjpzdHJpbmcgVGVzdCgpIHsgcmV0dXJuICJoaSI7IH0KfTsKIApjbGFzcyBEZXJpdmVkIDogcHVibGljIEJhc2UKewpwdWJsaWM6CiAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPSBkZWNsdHlwZShUZXN0KCkpPgogICAgVCBUZXN0KCkgeyByZXR1cm4gQmFzZTo6VGVzdCgpOyB9Cn07CiAKaW50IG1haW4oKSAKeyBzdGQ6OmNvdXQ8PCBEZXJpdmVkKCkuVGVzdCgpOyB9