детские грабли: declspec novtable
От: Кодт Россия  
Дата: 10.10.14 13:07
Оценка:
Навеяно http://habrahabr.ru/company/pvs-studio/blog/239915

Пользователи MSVC, знайте, что здесь водятся львы.
#include <stdio.h>

struct __declspec(novtable) A
{
    virtual void foo() { printf("%p A::foo\n", this); }
    void bar() { A::foo(); }
    void buz() { foo(); }
};

int main()
{
    __try
    {
        A a;
        a.foo();
        a.bar();
        a.buz();
    }
    __except(1)
    {
        printf("catastropha!\n");
    }
}

Что должен сказать компилятор , и что должна сделать программа, если она скомпилируется ?
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.