I have a code that is compiled in both gcc and vc++. The code has a common macro which is called in two scenarios.
- When we pass some parameters to it.
- When we don't want to pass any parameters to it.
An example of such a code is:
#define B(X) A1##X
int main() {
int B(123), B();
return 0;
}
The expect output from the pre-processing step of compilation is:
int main() {
int A1123, A1;
return 0;
}
The output for both gcc and vc++ is as expected, but vc++ gives a warning:
warning C4003: not enough actual parameters for macro 'B'
How can I remove this warning and yet get the expected output?
Thanks.