C++:
1
2
3
4
5
6
7
8
9
10
11
| // declaratie juist voor de functie waarin "landen" (zie onder) gedefinieerd word. #define LAND_ROUTES std::map <unsigned long, routendb_record, kleinste_van_2_ulongs> #define LAND_ELEMENT std::pair<short,LAND_ROUTES> #define ALLE_LANDEN std::map <char*, LAND_ELEMENT, kleinste_van_2_strings> // declaratie in header-file struct kleinste_van_2_strings { bool operator()(const char *s1, const char *s2) const { return ( strcmp(s1, s2) < 0 ); } }; struct kleinste_van_2_ulongs { bool operator()(const unsigned long s1, const unsigned long s2) const { return ( s1 < s2 ); } }; // Declaratie in een obscure functie ALLE_LANDEN landen; |
Nu het rare is dat dit fouten geeft
code:
1
2
3
4
5
| \RoutenTab.cpp(23) : error C2977: 'pair' : too many template arguments
c:\program files\coding\microsoft visual studio\vc98\include\utility(27) : see declaration of 'pair'
\RoutenTab.cpp(23) : error C2146: syntax error : missing ',' before identifier 'landen'
\RoutenTab.cpp(23) : error C2065: 'landen' : undeclared identifier
\RoutenTab.cpp(23) : error C2143: syntax error : missing '>' before ';' |
Verder wat ik ook enorm vreemd is als ik hetvolgende doe:
C++:
1
| #define LAND_ELEMENT std::pair<short,int> |
of
C++:
1
| #define LAND_ELEMENT LAND_ROUTES |
Dat dit perfect compileerd. (ik maak me voorlopig nog niet druk over het al dan niet runnen van de code, ik wil eerst compilen
Kan er iemand mij mijn fout aanduiden? Daar volgens mij alles logisch in elkaar zit