blackgoddess vive le troll ! | Bonjour,
j'aimerais pouvoir définir une macro avec un nombre variable de paramètres, pouvoir écrire quelque chose du style :
Code :
- #define my_printf(format, <liste d'arguments> ) printf(format, <liste d'arguments> )
|
je tiens absolument au fait que ce soit une macro pour pouvoir incorporer les _FILE_, _LINE_ du préprocesseur
je sais que c'est possible sur d'autres compilateurs comme GCC, mais je ne trouve pas de solutions sur VC++7.1 (VC++ .NET 2003).
j'ai vu des choses du style
Code :
- #define my_printf1(format, arg1) printf(format, arg1)
- #define my_printf2(format, arg1, arg2) printf(format, arg1, arg2)
- #define my_printf3(format, arg1, arg1, arg1) printf(format, arg1, arg2, arg3)
|
ce que je trouve tres moche
ou dans la MFC que je me suis forcé a regarder :
Code :
- class machin
- {
- machin(const char *file, int line);
- void operateur()(const char *format, ...);
- };
- #define my_machin machin(_FILE_, _LINE_)
|
mais je fais du C, pas du c++, j'ai pensé ecrire quelque chose comme :
Code :
- void machin1(const char *file, int line);
- void machin2(const char *format, ...);
- #define machin machin1(_FILE_, _LINE_); machin2
|
mais si on ecrit if(test) machin(pouet pouet); ca foire.
je ne trouve pas de solution, je suis un peu perdu, quelqu'un sait s'il est possible d'ecrire une macro vararg avec ce compilateur ? ou sinon comment contourner le problème ? ---------------
-( BlackGoddess )-
|