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++0xまたはでコンパイルし-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 に答える