0

我一生都无法弄清楚编译器想从我这里得到什么。

任何有编译器消息经验的人都可以帮我破译它想要什么吗?我什至无法提供代码位,因为我不知道发生了什么。

我正在使用带有 -std=c++11 的 g++-4.7

http://pastebin.com/AxYMd6L8

似乎它抱怨 SimpleMapSquare 以及它是一个分配器?不是那样的。SimpleMapSquare 定义为:

#pragma once

namespace BlackDragonEngine
{
struct SimpleMapSquare
{
  int TileID;
};
}

我昨天写了大约 400 多行模板代码,只是试图在我的主应用程序中包含它的标题,然后就发生了这种情况......

我什至不知道从哪里开始......请帮忙。

编辑:在我的项目中搜索“vector<”会返回:http: //i.imgur.com/g8L1l.png
我扩展了相关文件(我昨天创建的文件)

我写这么多代码没有测试的原因是因为我正在将我的引擎从 C# 转换为 C++,所以逻辑方面已经是正确的,我无法测试不完整的代码。

编辑 2:这里是“SimpleMapSquare”的所有用法http://i.imgur.com/zedkh.png

EDIT3:
感谢 Konrad,我能够查明确切的行并找到错误...忽略上面的搜索,因为我忘记包含 *.inl 文件(模板代码实现所在的位置)

4

2 回答 2

5

您在某处使用以下类:

class std::vector<sf::Vector2<int>, BlackDragonEngine::SimpleMapSquare>

的第二个类型参数std::vector是分配器类型!

于 2012-05-03T09:38:01.363 回答
0

看起来 SimpleMapSquare 包含类型的定义value_typepointerreference

就像 STL 将 SimpleMapSquare 视为迭代器、分配器或其他需要类的特征。

您是否将它作为错误的参数传递给某处?

于 2012-05-03T09:41:34.380 回答