Boost logo

Boost :

From: Beman Dawes (beman_at_[hidden])
Date: 2000-06-01 08:11:18

At 07:05 AM 6/1/00 +0100, Kevlin Henney wrote:

>In message <8h48c2+194i_at_[hidden]>, Dave Abrahams
><abrahams_at_[hidden]> writes
>>We have 3 options that I can see:
>>1. #define BOOST_CSTD_ to be either 'std', or nothing depending on
>>the standard library in use. When we write names from the 'C'
>>library, we qualify with BOOST_CSTD_::. This is a pain in the butt,

>>but has the least potential impact on users and is more likely to
>>stay correct.
>>2. Require the use of a more-conforming standard library
>>implementation, like the STLport.
>>3. Do nothing.
>There is always the lowest common denominator approach: use the
>headers. This may not be perfect, but it is guaranteed to work, has
>aesthetic edge on (1), and is more inclusive than either (2) or (3).

Kevlin isn't the only one suggesting just using the <*.h> C headers.
The first time I heard it, I was horrified. But given how messy the
problem has become, the <*.h> C headers don't looks so bad after all.

Whatever is decided, I need (1) a clear explanation that can go in
the Library Requirements on the web site, and (2) any changes to
boost/config.hpp (see below)


--- current config.hpp code ---

// Because std::size_t usage is so common, even in boost headers
which do not
// otherwise use the C library, the <cstddef> workaround is included
here so
// that ugly workaround code need not appear in many other boost
// NOTE WELL: This is a workaround for non-conforming compilers;
// must still be #included in the usual places so that <cstddef>
// works as expected with standard conforming compilers. The
// double inclusion of <cstddef> is harmless.

# include <cstddef>
    namespace std { using ::ptrdiff_t; using ::size_t; using
::wchar_t; }
# endif

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