MinGW找不到C ++ std :: vector.data

时间:2012-10-28 05:38:58

标签: c++ mingw

我已经能够使用以下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()函数之前完成的,所以它不仅仅是在到达其他实例之前代码崩溃的情况。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

在C ++ 11中添加了data函数。确保使用-std=c++0x-std=c++11进行编译,并使用包含该功能的MinGW版本。

如果不可能,您可以使用通常的C ++ 03变体:

&myMeasuredPoints[0]

答案 1 :(得分:0)

如果您的编译器不支持C ++ 11,那么您可以使用

&myMeasuredPoints[0]