如何强制gcc检查前向声明的类的存在?

时间:2017-02-27 09:24:23

标签: c++

添加一个不存在的类前向声明,如class Qwertyuiop编译和链接没有错误!

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

看起来它们只被视为void *

考虑到C / C ++编译过程,这是有道理的。

但是为了提高程序的正确性,有一种检查前向声明类的存在的方法可能是有用的。

1 个答案:

答案 0 :(得分:0)

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

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