Boost logo

Boost :

From: Alisdair Meredith (alisdair.meredith_at_[hidden])
Date: 2003-03-02 21:44:20

Picking off more borland errors, I have a couple of questions on this
test case:

1/ should char be Char in the following snippet [case-error]
[Extract of static_assert.hpp starting line 53]

template <class Int, class Char>
struct Bill
  private: // can be in private, to avoid namespace pollution
    BOOST_STATIC_ASSERT(sizeof(Int) > sizeof(char)); // <-- error?

2/ This same line line is the source of the borland error. A quick test
shows it cannot cope with the simple



    BOOST_STATIC_ASSERT( 5 >= 3 );

passes fine. I guess the > is fooling the template parser.

This leads to the obvious workaround of:

#if defined( __BORLANDC__ ) // Borland cannot handle > comparison
           ( sizeof(Int) >= sizeof(Char) )
        && ( sizeof(Int) != sizeof(Char) )
    BOOST_STATIC_ASSERT(sizeof(Int) > sizeof(Char));

However, I am not happy patching test-cases rather than libraries. On
the other hand, having diagnosed the problem with a viable workaround, I
don't see where else to record the information. Do we have a way of
documenting known workarounds for a library?


Boost list run by bdawes at, gregod at, cpdaniel at, john at