Bonjour,
Je suis en train de programmer un logiciel assez complexe et j'utilise beaucoup de namespace pour le segmenter, notamment pour toutes les énumérations. Cependant, je viens de me rendre compte que j'avais oublié un namespace avant le nom d'une fonction et que mon compilateur ne m'a pas reprit, qu'il a de lui-même retrouvé la fonction en question et continué comme si de rien n'était.
Or ce n'est pas ce que je veux, je veux au contraire qu'il me prévienne si j'ai oublié un namespace, même quand il n'y a pas d’ambiguïté.
Quand j'essaye d'utiliser la classe string sans le std, il râle, je voudrais bien qu'il fasse pareil pour mes namespaces.
L'exemple en question, définition de la fonction:
Utilisation de la fonction (au milieu d'un gros tas de code):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #ifndef FIGHTINGSIDE_H_INCLUDED #define FIGHTINGSIDE_H_INCLUDED struct lua_State; namespace EFightingSide { enum Type { Player = 0, Allies, Ennemies, Monster, Neutral, Length }; bool IsAlly(Type team1, Type team2); const char* ToString(Type team); int IsAlly(lua_State* L); } #endif // FIGHTINGSIDE_H_INCLUDED
J'ai vérifié, il n'y a aucun "using namespace EFightingSide" dans mon code et pas d'autre fonction "IsAlly".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 /** tas de code **/ if(isBerserk && IsAlly(info.UnitInfo->Team, info.TargetInfo->Team)) /** tas de code **/
J'utilise MinGW 4.6.2, Code::Blocks et Windows Seven 64.
Partager