如何为具有信号和槽的类强制使用 Q_OBJECT 宏

Ale*_*nov 5 c++ qt visual-c++

我有一堆定义了Q_OBJECT宏的基类和没有它的派生类:

class Base : public QObject
{
    Q_OBJECT
public:
    // signals and slots
};

class Derived : public Base
{
    // notice no `Q_OBJECT` macro
public:
    // signals and slots
};
Run Code Online (Sandbox Code Playgroud)

这工作正常,但根据Qt 文档

Q_OBJECT 宏必须出现在声明自己的信号和槽或使用 Qt 元对象系统提供的其他服务的类定义的私有部分中。

Q_OBJECT使用 Qt 元系统的类缺少宏时,有什么方法可以停止编译吗?

PS:我正在使用 MSVC 编译器