我已经能够使用以下C ++代码使用OpenGL的glVertexPointer函数:
glVertexPointer(3, GL_DOUBLE, 0, myMeasuredPoints.data());
myMeasuredPoints是一个C ++向量,其元素类型为double。使用Visual C ++编译此代码时,根本没有问题。但是,当使用MinGW进行编译时,我收到以下错误:
error: 'class std::vector<double, std::allocator<double>' has no member named 'data'
奇怪的是,我在代码中的任何其他位置都没有得到此错误,我调用myMeasuredPoints.push_back()等函数将值推送到向量上。这些其他实例都是在使用.data()函数之前完成的,所以它不仅仅是在到达其他实例之前代码崩溃的情况。
有什么想法吗?
答案 0 :(得分:6)
在C ++ 11中添加了data
函数。确保使用-std=c++0x
或-std=c++11
进行编译,并使用包含该功能的MinGW版本。
如果不可能,您可以使用通常的C ++ 03变体:
&myMeasuredPoints[0]
答案 1 :(得分:0)
如果您的编译器不支持C ++ 11,那么您可以使用
&myMeasuredPoints[0]