typeid

Дан следующий исходный код: #include <memory> #include <typeinfo> struct Base { virtual ~Base(); }; struct Derived : Base { }; int main() { std::unique_ptr<Base> ptr_foo = std::make_unique<Derived>(); typeid(*ptr_foo).name(); return 0; } И скомпилировал его с помощью: ...

в одном из проектов, над которыми я работаю, я вижу этот код struct Base { virtual ~Base() { } }; struct ClassX { bool isHoldingDerivedObj() const { return typeid(1 ? *m_basePtr : *m_basePtr) == typeid(Derived); } Base *m_basePtr; }; Я никогда не видел typeid использовать. Почему он делает это...