From: Paul Eggert Date: Wed, 5 Oct 2005 06:50:03 +0000 (+0000) Subject: * verify.h (verify_true): Provide alternative definition for C++. X-Git-Tag: cvs-readonly~2857 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=dddf08d8738ed46c097c018b89385205066c96bf;p=gnulib.git * verify.h (verify_true): Provide alternative definition for C++. --- diff --git a/lib/ChangeLog b/lib/ChangeLog index 190c237d7..c490d5bf4 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,7 @@ +2005-10-04 Bruno Haible + + * verify.h (verify_true): Provide alternative definition for C++. + 2005-10-04 Simon Josefsson * getaddrinfo.h: Move sys/types.h include first, reported by "Mark diff --git a/lib/verify.h b/lib/verify.h index d782e73b2..328980fa3 100644 --- a/lib/verify.h +++ b/lib/verify.h @@ -36,9 +36,16 @@ /* Verify requirement R at compile-time, as an integer constant expression. Return true. */ -# define verify_true(R) \ - (!!sizeof \ - (struct { unsigned int verify_error_if_negative_size__ : (R) ? 1 : -1; })) +# ifdef __cplusplus +template + struct verify_type__ { unsigned int verify_error_if_negative_size__: w; }; +# define verify_true(R) \ + (!!sizeof (verify_type__<(R) ? 1 : -1>)) +# else +# define verify_true(R) \ + (!!sizeof \ + (struct { unsigned int verify_error_if_negative_size__: (R) ? 1 : -1; })) +# endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */