incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Travis Vitek" <Travis.Vi...@roguewave.com>
Subject RE: svn commit: r668225 - /stdcxx/branches/4.3.x/etc/config/src/VA_LIST_FUNC_MACRO.cpp
Date Mon, 23 Jun 2008 22:58:56 GMT
 

>Eric Lemings wrote:
> 
>> Martin Sebor wrote:
>> 
>> 
>> My point was that I couldn't find a way to use a feature
>> that depends on variadic macros on platforms where they
>> are not supported. In other words, I can't picture what
>> the #else branch below would look like:
>> 
>>    #ifndef _RWSTD_NO_VARIADIC_MACROS
>>    #  define RW_ASSERT(expr, ...) \
>>              rw_assert (expr, 0, __LINE__, __VA_LIST__)
>>    #else
>>    #  define RW_ASSERT(expr, ???) ...
>>    #endif
>
>You're right.  There is no backward-compatible workaround which
>essentially rules out using variadic macros in these cases.
>

I think I've showed this trick before, but it won't work with template
parameters, only function parameters.

  struct Variadic
  {
      void operator()(const char* fmt, ...);
  };

  #define VARIADIC Variadic().operator()

Of course you would use it like this...

  VARIADIC("hello %s", "world!");

Travis

>Brad.
>

Mime
View raw message