我如何强制GCC检查前向声明的类的存在

How can I force gcc to check existence of forward declared classes?

本文关键字:声明 存在 何强制 GCC 检查      更新时间:2023-10-16

添加不现有类 forward声明,例如 class Qwertyuiop编译和链接而没有错误!

我推断出,未检查前向声明的类的存在,未检查(除非我们调用未定义的方法)。

看来它们被认为只不过是void *

考虑C/C 汇编过程这很有意义。

但是,为了改善程序的正确性,具有检查前向声明类的存在的方法可能很有用。

只需写static_assert(sizeof(Qwertyuiop)>0, "Qwertyuiop is defined")

显然,您无法检查一个翻译单元是否在另一个TU中定义;这与单独的翻译不相容。Tu可以按任何顺序编译。