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

Reply via email to