>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.
>

Reply via email to