Просмотр самого производного типа в отладчике (RTTI включен) - PullRequest
3 голосов
/ 29 ноября 2011

Рассмотрим следующий код, скомпилированный с включенным RTTI

class Base 
{
    virtual void f(); //without this, typeid won't show the most derived type
};
class Derived : public Base {};

int _tmain(int argc, _TCHAR* argv[])
{
    Base* b = new Derived();
    std::cout << typeid(*b).name() << std::endl; //this works but not on the Watch wnd
    return 0; //breakpoint here
}

Если я разбью строку return и посмотрю на панели «Часы» переменную b, столбец типа скажет Base, а не Derived. Используя AutoExp.dat Я могу отображать самый производный тип для определенных базовых классов, но я хочу иметь возможность сделать это для всех типов. Я пытался использовать typeid(b) в окнах Watch и Immediate безрезультатно - я получаю CXX0017: Error: symbol "typeid" not found. Я также попытался набрать b,t ( Autoexp.dat синтаксис) в окне Watch - но затем я получил CXX0026: Error: bad format string

...