Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-04-15 01:46:23


Hello,
I've just found out that the following program:

    #include <boost/static_assert.hpp>

    int main()
    {
        BOOST_STATIC_ASSERT(false);
        return 0;
    }

compiled with gcc 3.3 produces:

   sa.cpp:6: error: invalid application of `sizeof' to an incomplete type

which is not as nice as

   sa.cpp:6: `sizeof' applied to incomplete type
`boost::STATIC_ASSERTION_FAILURE<false>'

that gcc 2.95 generates and

   sa.cpp:6: `sizeof' applied to incomplete type `
      boost::STATIC_ASSERTION_FAILURE<false>'

That 3.2 generates. The behaviour of 3.4 is the same as for 3.3.

So, there are some questions:

1. Should I bug gcc developers about this?
2. Anybody knows another way to force better diagnostic?
3. Is it possible to make regression tests for static_assert always include
compiler messages, so that we know the diagnostic is OK?

- Volodya


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