问题
In C++ I can use typeid
operator to retrieve the name of any polymorphic class:
const char* name = typeid( CMyClass ).name();
How long will the string pointed to by the returned const char*
pointer available to my program?
回答1:
As long as the class with rtti exists. So if you deal with single executable - forever. But for classes in a Dynamic Link Librariy it shifts a little. Potentially you can unload it.
回答2:
The memory returned by type_info::name()
will be available for the application's lifetime.
来源:https://stackoverflow.com/questions/2109648/whats-the-lifetime-of-memory-pointed-to-typeinfoname