Clang -Wweak-vtables и чистый абстрактный класс

Что касается предыдущих вопросов по этой теме:

Это продолжение вопроса, который я недавно задал:clang: нет внешних определений виртуальных методов (чистый абстрактный класс C ++) и который был отмечен как дубликат этого вопроса:В чем смысл Clang's -Wweak-vtables?, Я не думаю, что это ответило на мой вопрос, поэтому здесь я сосредотачиваюсь на том, что меня озадачивает, и на которое еще не ответили.

Мой сценарий:

Я пытаюсь скомпилировать следующий простой код C ++, используя Clang-3.5:

test.h:

class A
{
  public:
    A();
    virtual ~A() = 0;
};

test.cc

#include "test.h"

A::A() {;}
A::~A() {;}

Команда, которую я использую для компиляции (Linux, uname -r: 3.16.0-4-amd64):

$clang-3.5 -Wweak-vtables -std=c++11 -c test.cc

И ошибка, которую я получаю:

./test.h:1:7: warning: 'A' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit [-Wweak-vtables]

Приведенный выше код прекрасно работает, когда класс A не является чисто абстрактным. Следующий код не генерирует предупреждения, и единственное изменение заключается в том, что класс A больше не является абстрактным:

test2.h:

class A
{
  public:
    A();
    virtual ~A();
};

test2.cc

#include "test2.h"

A::A() {;}
A::~A() {;}

Мой вопрос

Что такого особенного вчисто абстрактные классы что приведенный выше код вызывает предупреждения в Clang?

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

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