0

3 つの vc プロジェクト ファイルで構成される C++ ソリューションを構築しようとしています。どこで、適切な名前空間で始まる独自の stl ライブラリと標準 stl コレクション [リスト、ベクトルなど] を使用しています。

1 つの特定の変数 [ユーザー定義型のベクトル] に対して。これは、ユーザー定義構造の要素であり、次のようにエラーが発生します。

error C2039: '_Mycont' : is not a member of 'std::_Vector_const_iterator<_Ty,_Alloc>'   C:\Program Files\Microsoft Visual Studio 8\VC\include\vector    195 

error C2039: '_Mycont' : is not a member of 'std::_Vector_const_iterator<_Ty,_Alloc>'   C:\Program Files\Microsoft Visual Studio 8\VC\include\vector    195 

error C2039: '_Mycont' : is not a member of 'std::_Vector_const_iterator<_Ty,_Alloc>'   C:\Program Files\Microsoft Visual Studio 8\VC\include\vector    195 

そのコード行は

std::vector<ACand> Cands;

上記の変数に対して、挿入や削除などの最小限の操作を実行しようとしています。

デバッグモードでは正常に動作します。リリース モードでは同じことができません。

誰でもエラーを解決するのを手伝ってくれます。

ありがとうラダ

4

1 に答える 1

1

独自の stl コンテナーを作成しようとしないでください。コンパイラの実装によって提供されるものは、達成できるものよりもはるかに優れています。それでもこれを行いたい場合は、適切な名前空間 (mystd など) を前に付けてください。私の推測では、何らかの形でリリース時に、プログラムが mystd::vector の代わりに std::vector を使用しようとしているため、 std::vector には _Mycont メンバーが含まれていないため、エラーが発生します。

于 2013-09-27T07:49:26.833 に答える