When can typeid return different type_info instances for same type?

前端 未结 2 1716
感情败类
感情败类 2020-12-06 11:28

Andrei Alexandrescu writes in Modern C++ Design:

The objects returned by typeid have static storage, so you don\'t have to worry abou

2条回答
  •  不知归路
    2020-12-06 12:02

    Standards sometimes leave certain behavior unspecified in order to give implementations some freedom. In this case, how TypeIDs are managed is being left up to the compiler implementation and you're simply being given a set of rules (essentially: don't concern yourself with how memory for this is being allocated).

    Is there any particular reason why you need to be able to compare TypeIds based upon their memory address? TypeIds already override == and != in order to provide you with the ability to compare them, and provide a name() that might be used to identify them uniquely.

    If you've got The C++ Programming Language (Bjarne Stroustrup) available, chapter 15 has a lot of details about handling class hierarchies. Maybe you might find another solution there?

提交回复
热议问题