Is it possible to append a string to a variable (function/field name) in MACRO? How?
#include <iostream>
using namespace std;
#define T1(hoho) \
void hoho(){}
#define T2(hoho) \
void hoho_(){} //append underscore
T1(happy)
T2(sad)
int main() {
happy(); //<--- work OK
sad_(); //<--- this function not exist (compile error)
return 0;
}
I want to use it for some (hacky-but-cool) function generation, e.g. :-
#define T3(hoho) \
int hoho_; \
void hoho_clear(){hoho_=0;} \
int hoho_get(){return hoho_;}
class Magic{
T3(magicField) //<-- use only 1 MACRO parameter
}
The result will be like :-
class Magic{
int magicField_;
void magicField_clear(){magicField_=0;}
int magicField_get(){return magicField_;}
}
I know it is not a good practice. I will rarely use it, I promise.
Aucun commentaire:
Enregistrer un commentaire