2015-11-11 180 views
0

我想在Foo類的頭文件中轉發聲明GLuint,但GLuint的實現根據操作系統而變化。有沒有一種可移植的方式來轉發聲明由opengl給出的GL類型,而不必包含那個巨大的頭文件?正向聲明opengl類型

回答

2

除非您想使用模板,唯一的選擇是包含該頭文件。

你也可以用這些typedefs創建自己的頭文件,但是你必須自己維護它。這樣的typedef在將來不太可能改變。

2

是否有一種可移植的方式來轉發聲明由opengl給出的GL類型,而不必包含那個巨大的頭文件?

OpenGL是一個純粹的C頭文件(它有幾個#ifdef -s來處理C++鏈接,但就是這樣)。作爲一個純粹的C頭文件意味着它可以快速解析非常快的。這不像C++,每個頭文件都包含一個潛在的重要負擔。您可以在大型項目中將#include <GL/gl.h>添加到每個源文件(.hh.cc)中,並且這會將編譯時間僅增加幾百ms。