summaryrefslogtreecommitdiff
path: root/boost/config/compiler/xlcpp.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/config/compiler/xlcpp.hpp')
-rw-r--r--boost/config/compiler/xlcpp.hpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/boost/config/compiler/xlcpp.hpp b/boost/config/compiler/xlcpp.hpp
index 2aaafc3b66..b267f49bad 100644
--- a/boost/config/compiler/xlcpp.hpp
+++ b/boost/config/compiler/xlcpp.hpp
@@ -23,6 +23,10 @@
#define __has_extension __has_feature
#endif
+#ifndef __has_cpp_attribute
+#define __has_cpp_attribute(x) 0
+#endif
+
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
@@ -238,6 +242,16 @@
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
+#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
+# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
+#endif
+
+// Clang 3.9+ in c++1z
+#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
+# define BOOST_NO_CXX17_INLINE_VARIABLES
+# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
+#endif
+
#if !__has_feature(cxx_thread_local)
# define BOOST_NO_CXX11_THREAD_LOCAL
#endif