#include <iostream>
using namespace std;
template < class UnknownType > class MyClass
{
public:
virtual const UnknownType& method() const throw () = 0;
};
class MyClass2 : public MyClass<int>
{
int value;
public:
MyClass2() {
value = 5;
}
virtual const int& method() const throw ()
{
return value;
}
};
int main() {
MyClass2 a;
const int &b = a.method();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPCBjbGFzcyBVbmtub3duVHlwZSA+IGNsYXNzIE15Q2xhc3MKewpwdWJsaWM6CiAgICB2aXJ0dWFsIGNvbnN0IFVua25vd25UeXBlJiBtZXRob2QoKSBjb25zdCB0aHJvdyAoKSA9IDA7Cn07CgpjbGFzcyBNeUNsYXNzMiA6IHB1YmxpYyBNeUNsYXNzPGludD4gCnsKCWludCB2YWx1ZTsKCQpwdWJsaWM6CglNeUNsYXNzMigpIHsKCQl2YWx1ZSA9IDU7Cgl9Cgl2aXJ0dWFsIGNvbnN0IGludCYgbWV0aG9kKCkgY29uc3QgdGhyb3cgKCkgCgl7CgkJcmV0dXJuIHZhbHVlOwoJfQp9OwoKaW50IG1haW4oKSB7CglNeUNsYXNzMiBhOwoJCgljb25zdCBpbnQgJmIgPSBhLm1ldGhvZCgpOwoJCglyZXR1cm4gMDsKfQ==