Consider code: ----------- test.cpp ------------- class SomeClass {}; #define ASSERT( cnd, ... ) SomeClass(),##__VA_ARGS__ #define FAIL( ... ) SomeClass(),##__VA_ARGS__
void test() { ASSERT( false ); FAIL(); } ---------------------------------- $ cpp test.cpp >>> SomeClass(); >>> SomeClass(); $ cpp -std=c++0x test.cpp >>> SomeClass(); >>> SomeClass(),; ^^^ extra comma ! Why would the comma not be eaten only in c++0x and when the ellipsis is the unique parameter of the macro ? -- Summary: ,##__VA_ARGS__ comma not eaten with -std=c++0x Product: gcc Version: 4.4.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: eric dot estievenart at free dot fr GCC build triplet: 4.4.4 (Debian 4.4.4-1) GCC host triplet: i686 debian GNU/Linux GCC target triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44317