-----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Andy Little
Using gcc3.2 the concatenation of 1##Num where Num is negative leaves a space eg 1e#-1 --> 1e -1 as can be seen by
You aren't attempting to concatenate 1e and -1; you're attempting to concatenate 1e and -. I.e. token pasting is only operating on the two adjacent preprocessing tokens... <1e> ## <-> <1> The result of this *should* be <1e-> <1> ...because 1e- is a valid pp-number. However, it should not be <le-1>. To make that, you'd have to first paste on the <->, then paste on the other number: #define CAT(a, b) PRIMITIVE_CAT(a, b) #define PRIMITIVE_CAT(a, b) a ## b CAT(CAT(1e, -), 1) This works for me (as it should) on gcc3.4.4. I can't speak for gcc3.2. Regards, Paul Mensonides