完全なエラー メッセージ:
Error 1 error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'const std::_List_iterator<_Mylist>' (or there is no acceptable conversion) c:\ebooks\sourcecode\programing_game_ai_by_example\buckland_sourcecode\vs8 projects\buckland_chapter3-steering behaviors\path.h 54 1 Steering
[V]C++ の世界は初めてです。Programing Game AI by Exampleの本を読んでいて、出版社のサイトで入手できるソースコードを研究/分析しようとしていました。
ソース コード全体が VS8 で記述されているようですが、私は VS12 Express エディションを使用しています。プロジェクトの変換に問題はないようですが、すべてのプロジェクトで 4 つの警告が表示されます (以下を参照)。
しかし、問題は、私が持っている基本的な知識は、強く型付けされたリストの演算子のオーバーロードに関するものであると思われるコンパイルエラーが発生していることですが、それが真かどうかはわかりません。 .
エラー #1 のコード行:
Vector2D CurrentWaypoint()const{assert(curWaypoint != NULL); return *curWaypoint;}
問題変数の宣言:
std::list<Vector2D>::iterator curWaypoint;
コンストラクターを含む拡張コード スニペット:
//constructor for creating a path with initial random waypoints. MinX/Y
//& MaxX/Y define the bounding box of the path.
Path(int NumWaypoints,
double MinX,
double MinY,
double MaxX,
double MaxY,
bool looped):m_bLooped(looped)
{
CreateRandomPath(NumWaypoints, MinX, MinY, MaxX, MaxY);
curWaypoint = m_WayPoints.begin();
}
//returns the current waypoint
Vector2D CurrentWaypoint()const{assert(curWaypoint != NULL); return *curWaypoint;}
//returns true if the end of the list has been reached
bool Finished(){return !(curWaypoint != m_WayPoints.end());}
この後、どこに行けばよいかわかりませんが、リストと反復子の定義はWindowsUtils.hファイル内にあります。
同じ残りのエラーは貼り付けていませんが、ここでPath.h ファイル全体にアクセスできます
誰かがこれを修正する方法を教えてもらえますか? 私は常に c++、特に vc++ を怖がっていますが、誰かが問題の内容とそれを修正する方法を教えてくれれば、自分で修正できます
エラー
Error 1 error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'const std::_List_iterator<_Mylist>' (or there is no acceptable conversion) c:\ebooks\sourcecode\programing_game_ai_by_example\buckland_sourcecode\vs8 projects\buckland_chapter3-steering behaviors\path.h 54 1 Steering
Error 2 error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'const std::_List_iterator<_Mylist>' (or there is no acceptable conversion) c:\ebooks\sourcecode\programing_game_ai_by_example\buckland_sourcecode\vs8 projects\buckland_chapter3-steering behaviors\path.h 54 1 Steering
Error 3 error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'const std::_List_iterator<_Mylist>' (or there is no acceptable conversion) c:\ebooks\sourcecode\programing_game_ai_by_example\buckland_sourcecode\vs8 projects\buckland_chapter3-steering behaviors\path.h 54 1 Steering
Error 4 error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'const std::_List_iterator<_Mylist>' (or there is no acceptable conversion) c:\ebooks\sourcecode\programing_game_ai_by_example\buckland_sourcecode\vs8 projects\buckland_chapter3-steering behaviors\path.h 54 1 Steering
5 IntelliSense: no operator "!=" matches these operands
operand types are: const std::_List_iterator<std::_List_val<std::_List_simple_types<Vector2D>>> != int c:\eBooks\SourceCode\programing_game_ai_by_example\Buckland_SourceCode\VS8 projects\Buckland_Chapter3-Steering Behaviors\Path.h 54 38 Steering
これが問題になる場合に備えて、以下は、本のソースコードのすべてのプロジェクトに対して常に表示される警告です。
*一般的なソリューション変換の警告: * (注: 上記と同じプロジェクトではありません)
Conversion Report - WestWorld1.vcproj:
Converting project file 'C:\eBooks\SourceCode\programing_game_ai_by_example\Buckland_SourceCode\VS8 projects\Buckland_Chapter2-State Machines\WestWorld1\WestWorld1.vcproj'.
Web deployment to the local IIS server is no longer supported. The Web Deployment build tool has been removed from your project settings.
Done converting to new project file 'C:\eBooks\SourceCode\programing_game_ai_by_example\Buckland_SourceCode\VS8 projects\Buckland_Chapter2-State Machines\WestWorld1\WestWorld1.vcxproj'.
This application has been updated to include settings related to the User Account Control (UAC) feature of Windows Vista. By default, when run on Windows Vista with UAC enabled, this application is marked to run with the same privileges as the process that launched it. This marking also disables the application from running with virtualization. You can change UAC related settings from the Property Pages of the project.
VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.
MSB8012: $(TargetPath) ('C:\eBooks\SourceCode\programing_game_ai_by_example\Buckland_SourceCode\VS8 projects\Buckland_Chapter2-State Machines\WestWorld1\.\Debug\WestWorld1.exe') does not match the Linker's OutputFile property value '.\Debug/WestWorld1.exe' ('C:\eBooks\SourceCode\programing_game_ai_by_example\Buckland_SourceCode\VS8 projects\Buckland_Chapter2-State Machines\WestWorld1\Debug/WestWorld1.exe') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).
MSB8012: $(TargetPath) ('C:\eBooks\SourceCode\programing_game_ai_by_example\Buckland_SourceCode\VS8 projects\Buckland_Chapter2-State Machines\WestWorld1\.\Release\WestWorld1.exe') does not match the Linker's OutputFile property value '.\Release/WestWorld1.exe' ('C:\eBooks\SourceCode\programing_game_ai_by_example\Buckland_SourceCode\VS8 projects\Buckland_Chapter2-State Machines\WestWorld1\Release/WestWorld1.exe') in project configuration 'Release|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).