I was looking through the object factory chapter in the book referenced here. The TypeInfo
class above which is intended to be unique for each C class type uses a pointer to std::type_info
under the hood. I'm wondering if this is guaranteed by the latest standards to be unique for a given type?
If that is not guaranteed to be unique is there an alternate implementation of TypeInfo that can achieve such a guarantee?
CodePudding user response:
I do not see anything in the current standard draft making a guarantee that there will be only one std::type_info
object referenced by typeid
expressions for the same type, nor do I see any in C 98.
But I also don't see how the linked code would care about that.
CodePudding user response:
I'm not sure about uniqueness of std::std::type_info
pointers, but there are std::type_index
(https://en.cppreference.com/w/cpp/types/type_index) type which is "a wrapper class around a std::type_info object, that can be used as index in associative and unordered associative containers". So I read this as this index is unique for each given type.