Simplify my *-tests modules.
[gnulib.git] / lib / verify.h
index d782e73..328980f 100644 (file)
 /* 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 <int w>
+  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 ';'.  */