template< typename P >
class A
{
private:
typedef A< P > TSelf;
public:
P m;
A( P f ) : m( f ){}
};
class B : public A< int >
{
private:
typedef A< int > TBase;
public:
B( int f ) : TBase( f ){}
};
int main( void )
{
B lb( 8 );
return ( 0 );
}
dGVtcGxhdGU8IHR5cGVuYW1lIFAgPgpjbGFzcyBBCnsKIHByaXZhdGU6CiAgCiAgdHlwZWRlZiBBPCBQID4gVFNlbGY7CgogIAogcHVibGljOgogIFAgbTsKICBBKCBQIGYgKSA6IG0oIGYgKXt9Cn07CgpjbGFzcyBCIDogcHVibGljIEE8IGludCA+CnsKIHByaXZhdGU6CiAgdHlwZWRlZiBBPCBpbnQgPiBUQmFzZTsKIHB1YmxpYzoKICBCKCBpbnQgZiApIDogVEJhc2UoIGYgKXt9Cn07CgppbnQgbWFpbiggdm9pZCApCnsKIEIgbGIoIDggKTsKIHJldHVybiAoIDAgKTsKfQ==