From: John Maddock (john_at_[hidden])
Date: 2006-06-22 05:47:58


Pavel Vozenilek wrote:
> Digital Mars C++ (as in latest version 8.49.1) doesn't insert
> items from files like <cstdef> into std:: namespace
> (the headers do not use namespaces at all).
>
> BOOST_NO_STDC_NAMESPACE is not defined
> for the compiler but it should. This will immediatelly help
> with Serialization and possibly other libraries.

Are you talking about DMC without STLport? Surely it's unusable in that
state as there's no std lib?

> Several libraries (e.g. Type Traits) could be
> updated to handle this problem, e.g. with:
>
>
> #include <cstddef> // std::size_t
>
> #include <boost/config.hpp>
> #if defined(BOOST_NO_STDC_NAMESPACE)
> #error
> namespace std{
> using ::size_t;
> } // namespace std
> #endif

Unnecessary, Boost.Config already has that workaround for common defs like
size_t and ptrdiff_t.

> When such workarounds are applied and the latest STLport
> (5.10 beta, supporting DMC) are used quite a many libraries
> get usable under dmc: Optional, Variant, Program Options, etc
> among others.

Oh, but when I compile the Boost.Config tests with the latest DMC and
STLport-4.6.3 (the one that ships with DMC) all the config tests pass
(except for an internal error in config_test.cpp: the individual tests
pass). Which would indicate that no defines are required: in any case
doesn't STLport do the importing of names into namespace std for us?

John.