PATCH (libstdc++-v3): Fix libstdc++/7680 (and a reference fix for the dynamic visibility of C99 features in system headers)

Joern Rennecke joern.rennecke@superh.com
Thu Apr 17 14:21:00 GMT 2003


I wondered the same thing.  How do I put a #if region inside a macro
defined with #define?

> I need to define something like this to tighten it:
>
> #define _GLIBCXX_C99_BIND(a,b) \
> #if (a) \
>   using ::b; \
> #endif \

If a is known to be literally either 0, 1, or empty, you can do:

#define _GLIBCXX_C99_eval(x) x
#define _GLIBCXX_C99_USING(b)
#define _GLIBCXX_C99_USING0(b)
#define _GLIBCXX_C99_USING1(b) using::b;
	
#define _GLIBCXX_C99_BIND0(a,b) _GLIBCXX_C99_USING##a(b)
#define _GLIBCXX_C99_BIND(a,b) _GLIBCXX_C99_BIND0 (a,b)
	
-- 
--------------------------
SuperH (UK) Ltd.
2410 Aztec West / Almondsbury / BRISTOL / BS32 4QX
T:+44 1454 465658



More information about the Gcc-patches mailing list