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

标签 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>(...)

最佳答案

因为OpenGL其实是一个C库,而不是C++。你可以在 C++ 中使用它的原因是因为 C++ 的主要设计考虑之一是它能够使用 C 代码,但不可避免的情况是你使用的 C API 不会有很好的 C++ 接口(interface)。

关于c++ - 为什么 OpenGL 函数不使用模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31127483/

相关文章:

c++ - 基类和派生类中同名的静态成员变量

读取函数内的数据

c++ - 注册每个 C/C++ 源文件以创建已用源的运行时列表

c++ - 如何确定无格式输入函数读取的字符数?

function - 与功能扩展性作斗争

c++ - 将自动类型化的 lambda 与模板函数一起使用 - 使用 g++ 5.4 的自动模板推导

c++ - 用于连接编译时序列的模板元编程

c++ - 如何使用 get std::bind 之类的行为

c++ - OSX中动态链接优先级之间的冲突?

php - 在 PHP 的函数调用中使用哈希?