转发声明opengl类型

时间:2015-11-11 06:47:54

标签: c++ c++11 opengl

我想在类Foo的标头中声明一个GLuint,但是GLuint的实现会根据操作系统而改变。是否有一种可移植的方式来转发声明由opengl给出的GL类型而不必包含那个巨大的头文件?

2 个答案:

答案 0 :(得分:3)

除非您想使用模板,否则唯一的选择是包含该头文件。

您也可以使用这些typedef创建自己的标题,但您必须自己维护它。这种typedef在将来不太可能改变。

答案 1 :(得分:3)

  

是否有一种可移植的方式来转发声明由opengl给出的GL类型而不必包含那个巨大的头文件?

OpenGL是一个纯C头文件(它有几个#ifdef - s来处理C ++链接,但就是这样)。作为纯C头表示,它快速解析<​​em>非常。这与C ++不同,其中包含的每个头文件都带来了潜在的重大负担。您可以在大型项目中向每个源文件(#include <GL/gl.h>.hh)添加.cc,这样会使编译时间增加几百毫秒。