2015-11-11 5 views
0

Я хочу переслать декларацию GLuint в заголовке класса Foo, но реализация GLuint изменяется в зависимости от операционной системы. Есть ли переносимый способ перенаправления объявить типы GL, заданные opengl, без необходимости включать этот огромный файл заголовка?Форвард декларирования типов opengl

ответ

2

Если вы не хотите использовать шаблоны, единственным вариантом является включение этого файла заголовка.

Вы также можете создать свой собственный заголовок с этими typedefs, но вам придется его поддерживать самостоятельно. Такие typedefs вряд ли изменится в будущем.

2

Есть ли переносимый способ пересылки декларации типов GL, заданных opengl, без необходимости включать этот огромный заголовочный файл?

OpenGL - это чистый файл заголовка C (у него есть несколько #ifdef-s, чтобы иметь дело с C++-связью, но это все). Быть чистым C-заголовком означает, что он обрабатывает очень быстро. Это не похоже на C++, где каждый заголовочный файл входит в потенциально значительную нагрузку. Возможно, вы добавили #include <GL/gl.h> к каждому исходному файлу (.hh и .cc) в большом проекте, и это увеличило бы время компиляции всего на несколько сотен мс.

Смежные вопросы