Boost logo

Boost :

From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2003-03-09 19:53:58


>From: "David Abrahams" <dave_at_[hidden]>

> Dirk Gerrits <dirk_at_[hidden]> 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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk