probleme avec un macro

Le
Vincent Torri
Je fais le port Windows d'une bibliothèque linux. Je compile avec vc++

Elle utilise la macro:

#define UNROLL2(op) op op

vc++ dit alors :

error C2010: '.' : inattendu dans la liste de paramètres formels d'une
macro

gcc ne râle pas, par contre.

quelqu'un aurait-il une idee de la solution ?

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #20186171
On 20 sep, 09:48, Vincent Torri
Je fais le port Windows d'une bibliothèque linux. Je compile avec vc++
Elle utilise la macro:
#define UNROLL2(op...) op op
vc++ dit alors :
error C2010: '.' : inattendu dans la liste de paramètres formels d'un e
macro
gcc ne râle pas, par contre.
quelqu'un aurait-il une idee de la solution ?



Pour les "Variadic Macros", il faut 2005 au moins =>
http://msdn.microsoft.com/en-us/library/ms177415(VS.80).aspx
Vincent Torri
Le #20186961
Christian ASTOR :

On 20 sep, 09:48, Vincent Torri
Je fais le port Windows d'une bibliothèque linux. Je compile avec vc++
Elle utilise la macro:
#define UNROLL2(op...) op op
vc++ dit alors :
error C2010: '.' : inattendu dans la liste de paramètres formels d'un
e macro gcc ne râle pas, par contre.
quelqu'un aurait-il une idee de la solution ?



Pour les "Variadic Macros", il faut 2005 au moins =>
http://msdn.microsoft.com/en-us/library/ms177415(VS.80).aspx



ca tombe bien, j'ai VS 2008 :-)
Christian ASTOR
Le #20194611
On 20 sep, 13:27, Vincent Torri
Christian ASTOR :

> On 20 sep, 09:48, Vincent Torri >> Je fais le port Windows d'une bibliothèque linux. Je compile avec vc ++
>> Elle utilise la macro:
>> #define UNROLL2(op...) op op
>> vc++ dit alors :
>> error C2010: '.' : inattendu dans la liste de paramètres formels d 'un
>> e macro gcc ne râle pas, par contre.
>> quelqu'un aurait-il une idee de la solution ?

> Pour les "Variadic Macros", il faut 2005 au moins =>
>http://msdn.microsoft.com/en-us/library/ms177415(VS.80).aspx

ca tombe bien, j'ai VS 2008 :-)



Je pense que la syntaxe de l'exemple n'est pas standard (C99)
Les ex. de MS comme
#define CHECK1(x, ...) if (!(x)) { printf(__VA_ARGS__); }
qui ne compilent pas sous VS2003, compilent bien sous VS2005 par
exemple...
Publicité
Poster une réponse
Anonyme