After including <cstddef> to check for usage of STLport, if STLport is not detected, then include <utility> to detect other std libs. This avoids the issue that some std libs do not include all of their C++-related macros when just <cstddef> is included. Related to issue #2924.

[SVN r52262]
This commit is contained in:
David Deakins
2009-04-08 16:38:38 +00:00
parent 1271821c44
commit 3ae6668b44

View File

@ -11,12 +11,9 @@
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
// we need to include a std lib header here in order to detect which
// library is in use, use <cstddef> as it's one of the smaller std lib headers
// - do not rely on this header being included -
// users can short-circuit this header if they know whose std lib
// they are using.
// First include <cstddef> to determine if some version of STLport is in use as the std lib
// (do not rely on this header being included since users can short-circuit this header
// if they know whose std lib they are using.)
#include <cstddef>
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
@ -25,7 +22,17 @@
// can end up detecting that first rather than STLport:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
#elif defined(__LIBCOMO__)
#else
// If our std lib was not some version of STLport, then include <utility> as it is about
// the smallest of the std lib headers that includes real C++ stuff. (Some std libs do not
// include their C++-related macros in <cstddef> so this additional include makes sure
// we get those definitions)
// (again do not rely on this header being included since users can short-circuit this
// header if they know whose std lib they are using.)
#include <boost/config/no_tr1/utility.hpp>
#if defined(__LIBCOMO__)
// Comeau STL:
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
@ -64,5 +71,7 @@
#endif
#endif