Безопасно ли вызывать чисто виртуальную функцию в абстрактном конструкторе / деструкторе, если она имеет тело?

Я знаю, что без линии, обозначенной BODY, это небезопасно. Но с этим, это безопасно?

struct A
{
    virtual ~A() { f(); }

    virtual void f() = 0;
};

void A::f() {} // BODY

struct B : A
{
    void f() {}
};

int main()
{
    delete new B;
}

Рабочий пример:http://ideone.com/9bRZ3i

Ответы на вопрос(2)

Ваш ответ на вопрос