J'ai l'utilisation suivante de cas#define dans le corps macro
#define ConstantDouble(T)\
T(Alert, c_alert)
// I want to generate #define macro's dynamically
#define T(x, y) #define #x y <-- Error
ConstantDouble(T)
#undef T
#define Constant(x) Constants::x ; <-- x is Alert and I want the prev #define to kick in and convert this to c_alert
// Want to generate members variables directly
class Constants
{
#define T(x, y) static double y;
ConstantDouble(T)
#undef T
};
Cette une solution palliative pour cela?
je voudrais avoir quelque chose comme ça dans mon nom
Constant("Alert")
qui est converti en Constants::c_alert;
Ce n'est pas C, c'est C++! Il y a plusieurs astuces de préprocesseur que vous pouvez faire pour faire des choses comme ça en C (cherchez "xmacros"), mais puisque vous utilisez C++ de toute façon, pourquoi ne pas simplement utiliser des templates? – cha0site
Pourriez-vous donner un exemple avec des modèles? – KodeWarrior
Je pourrais peut-être, mais d'abord j'aurai besoin de vous pour expliquer ce que le but de cette construction entière est. Pourquoi voulez-vous écrire 'Constant (" Alert ")' et obtenir 'c_alert'? – cha0site