Достаточно ли сравнения адресов для этого `operator ==`?

Я создаю собственную систему RTTI для своей системы событий. Ниже представлен класс EventTypeInfo . Как видите, он не копируется, как и std :: type_info .

class EventTypeInfo
{
  public:
    EventTypeInfo(const EventTypeInfo&) = delete;
    EventTypeInfo& operator=(const EventTypeInfo&) = delete;

    inline bool operator==(const EventTypeInfo& other) const {
        return this == &other;
    }
};

Способ, которым я создаю эти объекты для каждого класса событий, сводится к следующему:

template<class EventClass>
const EventTypeInfo& event::type::info()
{
    static EventTypeInfo typeinfo;
    return typeinfo;
}

Учитывая, что (1) эти объекты создаются статически (что означает, что они будут существовать в течение всего периода application), (2) они не копируются и (3) нет способа изменить поля EventTypeInfo , не прибегая к const_cast , мне достаточно реализовать ] operator == является термином this == & other , или я что-то пропустил?

5
задан Paul Manta 26 January 2012 в 22:52
поделиться