#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
using namespace std;
template <class T1>
class TypeSize
{
public:
TypeSize(T1 value)
{
this->value = value;
}
void DataTypeSize()
{
cout << "value = " << sizeof(value) << endl;
}
protected:
T1 value;
};
template <class T1>
class TypeInfo : public TypeSize <T1>
{
public:
TypeInfo(T1 value) : TypeSize<T1>(value)
{
}
void ShowTypeName()
{
cout << "Название типа " << typeid(TypeSize<T1>::value).name() << endl; // ошибка 'value' was not declared in this scope
}
};
int main()
{
//setlocale(LC_ALL, "ru");
double a = 0;
TypeInfo<double> c(a);
c.DataTypeSize();
c.ShowTypeName();
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8Y2xhc3MgVDE+CiAgICBjbGFzcyBUeXBlU2l6ZQp7CnB1YmxpYzoKICAgIFR5cGVTaXplKFQxIHZhbHVlKQogICAgewogICAgICAgIHRoaXMtPnZhbHVlID0gdmFsdWU7CiAgICB9CiAgICB2b2lkIERhdGFUeXBlU2l6ZSgpCiAgICB7CiAgICAgICAgY291dCA8PCAidmFsdWUgPSAgIiA8PCBzaXplb2YodmFsdWUpIDw8IGVuZGw7CiAgICB9CnByb3RlY3RlZDoKICAgIFQxIHZhbHVlOwp9OwoKdGVtcGxhdGUgPGNsYXNzIFQxPgpjbGFzcyBUeXBlSW5mbyA6IHB1YmxpYyBUeXBlU2l6ZSA8VDE+CnsKcHVibGljOgogICAgVHlwZUluZm8oVDEgdmFsdWUpIDogVHlwZVNpemU8VDE+KHZhbHVlKQogICAgewoKICAgIH0KICAgIHZvaWQgU2hvd1R5cGVOYW1lKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICLQndCw0LfQstCw0L3QuNC1INGC0LjQv9CwICIgPDwgdHlwZWlkKFR5cGVTaXplPFQxPjo6dmFsdWUpLm5hbWUoKSA8PCBlbmRsOyAvLyDQvtGI0LjQsdC60LAgJ3ZhbHVlJyB3YXMgbm90IGRlY2xhcmVkIGluIHRoaXMgc2NvcGUKICAgIH0KfTsKCmludCBtYWluKCkKCnsKICAgIC8vc2V0bG9jYWxlKExDX0FMTCwgInJ1Iik7CgogICAgZG91YmxlIGEgPSAwOwogICAgVHlwZUluZm88ZG91YmxlPiBjKGEpOwoKICAgIGMuRGF0YVR5cGVTaXplKCk7CiAgICBjLlNob3dUeXBlTmFtZSgpOwoKICAgIHJldHVybiAwOwp9Cg==