J'ai porté un projet de Windows vers Linux, et j'ai du corriger la syntaxe de certaines macro, que gcc me refusait. Dans la version qui marchait bien sous Windows, j'utilisais la syntaxe ## pour mes stream...
Maintenant, je suis repassé en une syntaxe en # pour que ca compile sous Linux, et evidemment, ca ne donne pas le résultat attendu (sous win comme sous lin), ca affichage des
L"Mode verbeux activÙ - RÙsumÙ des paramÙtres retenus :"
Mis à part l'unicode qui a l'air de ne pas marcher, c'est surtout le L"" qui m'embête...
Quand j'étais encore avec ##, ça affichait bien le message. Voici le code :
Macros définies actuellement compatibles Windows (vc) et Linux(gcc):
Code :
- #define CRASH(stream) { std::wcerr << #stream << std::endl; }
- #define WARNING(stream) \
- if(!cmd_quiet) \
- { std::wcout << #stream << std::endl; }
- #define VERBOSE(stream) \
- if(cmd_verbose && !cmd_quiet) \
- { std::wcout << #stream << std::endl; }
|
Exemple d'utilisation :
Code :
- VERBOSE( L"Mode verbeux activé - Résumé des paramètres retenus :" );
|
Je sais, c'est pas très commun de concaténer des stream via des macro, si vous voyez une autre manière de faire. Ou si vous savez comment faire accepter les ## à gcc