Ich habe Code:Multipass-Präprozessor in MSVC?
#define __IGNORE__(...)
#define XUJ(x)); if (x) { test2(); } __IGNORE__(0
void test2() {
}
void test() {
}
int main() {
int x = 0;
test(XUJ(x));
return 0;
}
GCC kompiliert, aber cl.exe hat Fehler:
$ cl 1.cpp
1.cpp(14): error C2059: syntax error: ;
Aber ... wenn ich Makros zu entpacken:
test(); if (x) { test2(); } __IGNORE__(0);
Es kompiliert normaly . MSVC 2015 Compiler unterstützt Multipass Preprozessor nicht? O_O
upd: hm .... wo Klammern? o_O
$ cl /E 1.cpp
1.cpp
#line 1 "1.cpp"
void test2() {
}
void test() {
}
int main() {
int x = 0;
test(); if (x) { test2(); } ;
return 0;
}
, dass Sie die neuesten Updates für Ihren Compiler. Testen Sie auch mit VS2017, und wenn einer oder beide den Fehler wiederholen, reichen Sie einen Fehlerbericht über Microsoft Connect ein. – rubenvb
Ich bekomme die Downvotes nicht. Die Frage ist vielleicht nicht gut geschrieben und enthält viele Smilies, aber das Problem ist klar erkennbar und OP lieferte sogar einen MCVE. –