Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r52262 - trunk/boost/config
From: DDeakins_at_[hidden]
Date: 2009-04-08 12:38:39


Author: davedeakins
Date: 2009-04-08 12:38:38 EDT (Wed, 08 Apr 2009)
New Revision: 52262
URL: http://svn.boost.org/trac/boost/changeset/52262

Log:
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.
Text files modified:
   trunk/boost/config/select_stdlib_config.hpp | 23 ++++++++++++++++-------
   1 files changed, 16 insertions(+), 7 deletions(-)

Modified: trunk/boost/config/select_stdlib_config.hpp
==============================================================================
--- trunk/boost/config/select_stdlib_config.hpp (original)
+++ trunk/boost/config/select_stdlib_config.hpp 2009-04-08 12:38:38 EDT (Wed, 08 Apr 2009)
@@ -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
+
 
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk