Я понимаю, что классу нужен как минимум одна виртуальная функция, определенная в исходном файле ( вне строки ), в противном случае vtable нужно будет вставить в каждый объектный файл.
У меня следующая ситуация:
//foo.cpp
struct Foo {
virtual int Bar() { return 1; }
virtual ~Foo() = default;
};
Модель кода лягушки в Qt Creator (4.5.2) выдает предупреждение -Wweak-table для Foo.
Строго говоря, предупреждение верно, так какvtable будет включен в каждую единицу перевода.Практически это бесполезно, потому что в любом случае vtable в любом случае генерируется только в foo.o.
Как отключить -Wweak-vtables только для классов, определенных в исходном файле?