В C++ я могу использовать оператор typeid
для получения имени любого полиморфного класса:
const char* name = typeid( CMyClass ).name();
Как долго строка, на которую указывает возвращенный указатель const char*
, будет доступна моей программе?
В C++ я могу использовать оператор typeid
для получения имени любого полиморфного класса:
const char* name = typeid( CMyClass ).name();
Как долго строка, на которую указывает возвращенный указатель const char*
, будет доступна моей программе?
Пока существует класс с rtti. Так что если иметь дело с одним экзешником - навсегда. Но для классов в Dynamic Link Librariy это немного меняется. Потенциально вы можете разгрузить его.
Память, возвращаемая type_info::name()
, будет доступна в течение всего времени существования приложения.
typeid()
имеет время жизни приложения, но я не могу найти ничего, что указывало бы на время жизни результата type_info::name()
.
- person D.Shawley; 21.01.2010