为什么OpenGL函数不使用模板?

时间:2015-06-30 00:04:20

标签: c++ function templates opengl

例如,如果我想清除颜色缓冲区,我必须打电话:

glClearBufferfv(GL_COLOR, 0, color); //color is a float array of 4 numbers

但OpenGL也提供

glClearBufferiv(); //expects an int array
glClearBufferuiv(); //expects an unsigned int array

那么为什么OpenGL不使用模板?像这样:

glClearBuffer<float>(...)

1 个答案:

答案 0 :(得分:8)

因为OpenGL实际上是一个C库,而不是C ++。您可以在C ++中使用它的原因是因为C ++中的一个主要设计考虑因素是它能够使用C代码,但是随之而来的是您使用的C API不可避免的情况下具有良好的C ++接口。