>From: "David Abrahams" <[EMAIL PROTECTED]>

> Dirk Gerrits <[EMAIL PROTECTED]> writes:
>
> > Dirk Gerrits wrote:
> >  >
> >  > I'd say something like:
> >  >
> >  > #ifdef STATIC_NDEBUG
> >  > #    define BOOST_STATIC_ASSERT2(e) BOOST_STATIC_ASSERT(e)
> >  > #else
> >  > #    define BOOST_STATIC_ASSERT2(e) (void(e))
> >  > #endif
> >  >
> >  > Analogous to <cassert>.
> >
> > Argh, the if and else branches should be reversed of course. You've
> > gotta love negative logic. ;)
>
> I like the basic idea, but are you sure it will work in all the
> contexts where BOOST_STATIC_ASSERT works?  I think BOOST_STATIC_ASSERT
> functions like a declaration, syntactically.

Then how about simply:

#ifndef STATIC_NDEBUG
#    define BOOST_STATIC_ASSERT2(e) BOOST_STATIC_ASSERT(e)
#else
#    define BOOST_STATIC_ASSERT2(e) // Possibly "void(0)" here, like
"assert"
#endif

By the way, what's the point with "void(0)", compared to nothing? Both
"void(0);" and ";" are valid statements.


Regards,

Terje

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to