J'essaie, en vain, de porter un code convenable compilable sous GCC 3.4 vers l'environnement Visual Studio .NET 2003.
Un proboème survient lors de déclaration de macro dont le nombre de paramètres est inconnu. Par exemple :
#define MACRO(x, ...) printf("%s\n", __VA_ARGS__)
1. Visual Studio ne reconnaît pas __VA_ARGS__.
2. Les pointillés provoquent l'erreur C2010 : vig.hpp(63): error C2010: '.' : inattendu dans la liste des paramètres formels d'une macro
En fait, je cherche à créer une macro dont le nombre d'arguments peut aller de 1 à n. Je suis surpris de ce problème, apparaissant uniquement sous Visual C++, car il me semblait que ceci faisait partie des spécifications ANSI.
Bref, l'un d'entre vous pourrait-il me proposer une solution "palliative" ?
Par avance, merci !
Mais les fonctions sont capables de faire ça non ?
J'ai déjà vu plusieur fonction comme ça :
void Fonct(int a, ...)
Je sais pas si c'est ma mémoire qui me joue des tours :) Mais bon...
Passe par une fonction, au lieu d'une macro, ça reste quasiment pareil je suppose...
Je confirme que les fonctions sont capables de faire cela. En l'occurrence, ceci ne m'est pas utile dans le cas précis : la macro ayant pour but elle-même de permettre la déclaration de fonctions...
En tout cas, merci à vous deux pour vos précisions.