|
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
<*.h>
>headers. This may not be perfect, but it is guaranteed to work, has
the
>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)
--Beman
--- current config.hpp code ---
// BOOST_NO_STDC_NAMESPACE workaround
--------------------------------------//
//
// 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
headers.
// NOTE WELL: This is a workaround for non-conforming compilers;
<cstddef>
// must still be #included in the usual places so that <cstddef>
inclusion
// works as expected with standard conforming compilers. The
resulting
// double inclusion of <cstddef> is harmless.
# ifdef BOOST_NO_STDC_NAMESPACE
# include <cstddef>
namespace std { using ::ptrdiff_t; using ::size_t; using
::wchar_t; }
# endif
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk