【发布时间】:2010-04-22 03:07:40
【问题描述】:
我正在使用带有 Feature Pack 1 的 Visual Studio 2008。
我有一个像这样的 typedef typedef std::tr1::tuple<std::string, std::string, int> tileInfo
具有类似const tileInfo& GetTile( int x, int y ) const 的功能。
在实现文件中,函数具有完全相同的签名(添加了类名限定符),我收到了redefinition: different type modifiers 错误。它似乎在寻找 int& 而不是 tileInfo&
当我将鼠标悬停在标题中的函数类型上时,即tileInfo& 它会弹出一个小条,上面写着static const int tileInfo。我认为这可能是问题所在,但我不确定该怎么做。这让我相信编译器认为std::tr1::tuple<std::string, std::string, int> 是static const int。
感谢您的帮助。
附:这是一个模拟相同情况的示例,只是压缩到最低限度。
#include <tuple>
class Blah {
public:
typedef std::tr1::tuple<std::string, std::string, int> tileInfo;
tileInfo& GetTile( int x, int y ); // When you mouse over tileInfo in this line, it says static const int
...
};
【问题讨论】: