Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r75214 - trunk/boost/config/compiler
From: john_at_[hidden]
Date: 2011-11-01 14:17:55


Author: johnmaddock
Date: 2011-11-01 14:17:54 EDT (Tue, 01 Nov 2011)
New Revision: 75214
URL: http://svn.boost.org/trac/boost/changeset/75214

Log:
Apply Michel Morin's Clang patch.
Text files modified:
   trunk/boost/config/compiler/clang.hpp | 67 ++++++++++++++++++++++++++++++---------
   1 files changed, 51 insertions(+), 16 deletions(-)

Modified: trunk/boost/config/compiler/clang.hpp
==============================================================================
--- trunk/boost/config/compiler/clang.hpp (original)
+++ trunk/boost/config/compiler/clang.hpp 2011-11-01 14:17:54 EDT (Tue, 01 Nov 2011)
@@ -25,35 +25,65 @@
 
 // Clang supports "long long" in all compilation modes.
 
-#define BOOST_NO_AUTO_DECLARATIONS
-#define BOOST_NO_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CHAR16_T
-#define BOOST_NO_CHAR32_T
-#define BOOST_NO_CONSTEXPR
+#if !__has_feature(cxx_auto_type)
+# define BOOST_NO_AUTO_DECLARATIONS
+# define BOOST_NO_AUTO_MULTIDECLARATIONS
+#endif
+
+#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
+# define BOOST_NO_CHAR16_T
+# define BOOST_NO_CHAR32_T
+#endif
+
+#if !__has_feature(cxx_constexpr)
+# define BOOST_NO_CONSTEXPR
+#endif
 
 #if !__has_feature(cxx_decltype)
 # define BOOST_NO_DECLTYPE
 #endif
 
 #define BOOST_NO_DECLTYPE_N3276
-#define BOOST_NO_DEFAULTED_FUNCTIONS
+
+#if !__has_feature(cxx_defaulted_functions)
+# define BOOST_NO_DEFAULTED_FUNCTIONS
+#endif
 
 #if !__has_feature(cxx_deleted_functions)
 # define BOOST_NO_DELETED_FUNCTIONS
 #endif
 
-#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#if !__has_feature(cxx_explicit_conversions)
+# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
+#endif
 
 #if !__has_feature(cxx_default_function_template_args)
- #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
+#endif
+
+#if !__has_feature(cxx_generalized_initializers)
+# define BOOST_NO_INITIALIZER_LISTS
+#endif
+
+#if !__has_feature(cxx_lambdas)
+# define BOOST_NO_LAMBDAS
+#endif
+
+#if !__has_feature(cxx_noexcept)
+# define BOOST_NO_NOEXCEPT
 #endif
 
-#define BOOST_NO_INITIALIZER_LISTS
-#define BOOST_NO_LAMBDAS
-#define BOOST_NO_NOEXCEPT
-#define BOOST_NO_NULLPTR
-#define BOOST_NO_RAW_LITERALS
-#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#if !__has_feature(cxx_nullptr)
+# define BOOST_NO_NULLPTR
+#endif
+
+#if !__has_feature(cxx_raw_string_literals)
+# define BOOST_NO_RAW_LITERALS
+#endif
+
+#if !__has_feature(cxx_generalized_initializers)
+# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
+#endif
 
 #if !__has_feature(cxx_rvalue_references)
 # define BOOST_NO_RVALUE_REFERENCES
@@ -67,8 +97,13 @@
 # define BOOST_NO_STATIC_ASSERT
 #endif
 
-#define BOOST_NO_TEMPLATE_ALIASES
-#define BOOST_NO_UNICODE_LITERALS
+#if !__has_feature(cxx_alias_templates)
+# define BOOST_NO_TEMPLATE_ALIASES
+#endif
+
+#if !__has_feature(cxx_unicode_literals)
+# define BOOST_NO_UNICODE_LITERALS
+#endif
 
 #if !__has_feature(cxx_variadic_templates)
 # define BOOST_NO_VARIADIC_TEMPLATES


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