|
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