What's the lifetime of memory pointed to typeinfo::name()?
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 开发者_如何学Goconst char*
pointer available to my program?
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.
The memory returned by type_info::name()
will be available for the application's lifetime.
精彩评论