Я использую Visual Studio 2008 с Feature Pack 1.
У меня есть 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
.
Любая помощь приветствуется, спасибо.
P.S. Вот пример, имитирующий ту же ситуацию, просто сжатый до минимума.
#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
...
};