J'utilise Visual Studio 2008 Feature Pack 1.problème de type en incluant tuple
J'ai un typedef comme celui-ci typedef std::tr1::tuple<std::string, std::string, int> tileInfo
avec une fonction comme celui-ci const tileInfo& GetTile(int x, int y) const
.
Dans le fichier d'implémentation, la fonction a exactement la même signature (avec le qualificateur de nom de classe ajouté) et j'obtiens une erreur redefinition: different type modifiers
. Il semble être à la recherche d'un int&
au lieu d'un tileInfo&
Quand je souris sur le type de la fonction dans l'en-tête, à savoir tileInfo&
il ouvre une petite barre en disant static const int tileInfo
. Je pense que c'est peut-être le problème, mais je ne sais pas quoi faire. Cela m'amène à croire que le compilateur pense que std::tr1::tuple<std::string, std::string, int>
est un static const int
.
Toute aide est appréciée, merci.
P.S. Voici un exemple imitant la même situation, juste compacté au minimum.
#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
...
};
Il est inclus. Ce que j'ai décrit en dernier lieu apparaît dans l'en-tête. La signature de la fonction est en dessous du typedef dans la visibilité publique. – Person
incluez-vous 'tuple' et' string' avant de définir typedef? – stefanB
Oui. Ils sont inclus. – Person