On Mon, 10 Mar 2003 20:41:26 -0800, "Jaap Suter" <[EMAIL PROTECTED]> wrote:
#define BOOST_STATIC_ASSERT(c) \ typedef char boost_static_assert_typedef
When using several asserts in the same context some compilers could complain about the duplicate typedef; if so pasting the expansion of __LINE__ shouldn't be that expensive either.
That seems indeed the best solution to me (with the __LINE__ included) as most of the time is spend in calculations for the actual expression.
In effect I would prefer the one without __LINE__. But if any compiler warns about duplicate typedefs than it's better having a single version, with __LINE__, than #ifs.
Also I have a slight preference for using void instead of char, as suggested by Greg:
typedef void boost_static_assert_typedef
Perhaps I missed a part of the discussion, but what is wrong with Jaap's suggestion:
#ifdef BOOST_STATIC_NDEBUG #define BOOST_STATIC_ASSERT( B ) BOOST_STATIC_ASSERT_IMPL( true ) #else #define BOOST_STATIC_ASSERT( B ) BOOST_STATIC_ASSERT_IMPL( B ) #endif
?
But all this conjectures should be backed up by some measurement. Jaap?
Agreed. I will do some measurements this week and report back in a few days.
Nice :-)
Indeed. :)
Dirk Gerrits
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost