1. Le probleme des boucles for qui executent le premier parametre dans le bloc courant, ce qui fait que :
for (int i=1; i<50; i++);
for (int i=1; i<50; i++);
ne passe pas, la variable i etant redefinie.
Solution :
#define for if(0) {} else for
Et voila, la boucle for est compatible ANSI
2. Le probleme du min/max. Lorsque l'on doit inclure les fichiers windows (et en particulier windef.h) des macros min et max sont incluses, ce qui entre en conflit avec les templates min et max de la STL.
Par consequent, il faut desactiver ces macros.
Solution : mettre NOMINMAX comme directive du preprocessor.
3. La STL fournie avec Visual C++ ne contient pas les template min et max. Nous allons donc les rajouter :
Code :
- #ifndef STD_MINMAX
- namespace std {
- template <class T>
- inline const T& min(const T& a, const T& b)
- { return b < a ? b : a; }
- template <class T>
- inline const T& max(const T& a, const T& b)
- { return a < b ? b : a; }
- }
- #endif
|
Voila j'espere que ca pourra aider certains d'entre vous