1

我已经能够使用以下 C++ 代码使用 OpenGL 的 glVertexPointer 函数:

glVertexPointer(3, GL_DOUBLE, 0, myMeasuredPoints.data());

myMeasuredPoints 是一个包含 double 类型元素的 C++ 向量。用 Visual C++ 编译这段代码时,完全没有问题。但是,在使用 MinGW 进行编译时,出现以下错误:

error: 'class std::vector<double, std::allocator<double>' has no member named 'data'

奇怪的是,我在代码中调用诸如 myMeasuredPoints.push_back() 之类的函数将值推送到向量上的任何其他地方都没有收到此错误。这些其他实例都是在使用 .data() 函数之前出现的,因此它不仅仅是代码在到达其他实例之前崩溃的情况。

有什么想法吗?

4

2 回答 2

7

data函数是在 C++11 中添加的。确保您使用-std=c++0xor编译-std=c++11并拥有包含该功能的 MinGW 版本。

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

&myMeasuredPoints[0]
于 2012-10-28T05:40:49.830 回答
0

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

&myMeasuredPoints[0]
于 2012-10-28T05:41:42.887 回答