编辑4:好的,我把问题缩小到一个小的cpp文件,给出了每个人都可以重现的错误信息:
#include<vector>
#include<map>
using namespace std;
namespace{enum class Colors{Black,White};}
class dummyClass{};
class MapTest
{
vector<dummyClass*> Dummys;
map<Colors,vector<dummyClass*>> dummyMap;
public:
MapTest()
{
Dummys.push_back(new dummyClass);
Dummys.push_back(new dummyClass);
dummyMap.insert(make_pair(Colors::White,Dummys));
}
~MapTest()
{
for(unsigned int i=0;i<Dummys.size();++i)
{
delete Dummys[i];
}
Dummys.clear();
dummyMap.clear();
}
};
int main()
{
MapTest m;
}
编辑3:如果有人想知道。我删除了析构函数中的所有指针。没有发布,因为我认为它与问题无关
编辑2:在.cpp文件中添加了更多详细信息。课程&#34;鲍尔&#34;和&#34;职位&#34;不应该有任何相关性。
我的头文件match.h:
#include <map>
#include"Bauer.h"
class Match
{
int counter{0};
std::vector<Figuren*> allFiguresWhite;
std::vector<Figuren*> allFiguresBlack;
std::map<Farben,std::vector<Figuren*>> samePlayerFig;
std::map<Farben,std::vector<Figuren*>> otherPlayerFig;
//more code...
}
&#34;法本&#34;只是一个枚举:enum class Farben{black, white};
在我的match.cpp中,我尝试在一点上将par插入地图:
#include "match.h"
using namespace std;
Match::Match()
{
cout<<"Let the games begin\n";
InitGame();
}
void Match::InitGame()
{
for(int i=1;i<9;i++)
{
allFiguresWhite.push_back(new Bauer(Position{2,i},Farben::white, counter++));
allFiguresBlack.push_back(new Bauer(Position{7,i},Farben::black,counter++));
}
samePlayerFig.insert(make_pair(Farben::white,allFiguresWhite));
//more code...
}
不幸的是我得到了编译错误&#34;无效的参数&#39; &#34;在这一行中&#34;插入&#34;在红色下划线。 知道我做错了什么吗?
编辑: 这是完整的错误消息
无效的参数&#39;候选人是: 的std ::对&GT;&GT;&GT;,&布尔GT; insert(const std :: pair&gt;&gt;&amp;)std :: pair&gt;&gt;&gt;,bool&gt; insert(#10000&amp;&amp;)void insert(std :: initializer_list&gt;&gt;&gt;) 的std :: _ Rb_tree_iterator&GT;&GT;&GT; insert(std :: _ Rb_tree_const_iterator&gt;&gt;&gt;,const 的std ::对&GT;&GT; &amp;)std :: _ Rb_tree_iterator&gt;&gt;&gt; insert(std :: _ Rb_tree_const_iterator&gt;&gt;&gt;,#10000&amp;&amp;) void insert(#10000,#10000)&#39; match.cpp / chessGame第17行语义 错误
答案 0 :(得分:1)
好的,这似乎是Eclipse特定的错误。我使用“g ++ main.cpp -o main”从命令行编译了Test programm,它运行正常。要看看为什么它不适用于eclipse。到目前为止,我已经编译了很多项目,从来没有任何编译器问题。