我想在类Foo的标头中声明一个GLuint,但是GLuint的实现会根据操作系统而改变。是否有一种可移植的方式来转发声明由opengl给出的GL类型而不必包含那个巨大的头文件?
答案 0 :(得分:3)
除非您想使用模板,否则唯一的选择是包含该头文件。
您也可以使用这些typedef创建自己的标题,但您必须自己维护它。这种typedef在将来不太可能改变。
答案 1 :(得分:3)
是否有一种可移植的方式来转发声明由opengl给出的GL类型而不必包含那个巨大的头文件?
OpenGL是一个纯C头文件(它有几个#ifdef
- s来处理C ++链接,但就是这样)。作为纯C头表示,它快速解析<em>非常。这与C ++不同,其中包含的每个头文件都带来了潜在的重大负担。您可以在大型项目中向每个源文件(#include <GL/gl.h>
和.hh
)添加.cc
,这样会使编译时间增加几百毫秒。