summaryrefslogtreecommitdiff
path: root/boost/flyweight/detail/not_placeholder_expr.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/flyweight/detail/not_placeholder_expr.hpp')
-rw-r--r--boost/flyweight/detail/not_placeholder_expr.hpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/boost/flyweight/detail/not_placeholder_expr.hpp b/boost/flyweight/detail/not_placeholder_expr.hpp
index 004c67035a..ce5f8fbde9 100644
--- a/boost/flyweight/detail/not_placeholder_expr.hpp
+++ b/boost/flyweight/detail/not_placeholder_expr.hpp
@@ -1,4 +1,4 @@
-/* Copyright 2006-2008 Joaquin M Lopez Munoz.
+/* Copyright 2006-2018 Joaquin M Lopez Munoz.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
@@ -30,13 +30,18 @@
#include <boost/detail/workaround.hpp>
#if BOOST_WORKAROUND(__GNUC__, <4)||\
- BOOST_WORKAROUND(__GNUC__,==4)&&(__GNUC_MINOR__<2)
+ BOOST_WORKAROUND(__GNUC__,==4)&&(__GNUC_MINOR__<2)||\
+ BOOST_WORKAROUND(__GNUC__, ==7)&&( __cplusplus>=201703L)||\
+ BOOST_WORKAROUND(__GNUC__, >=8)&&( __cplusplus>=201103L)
/* The default trick on which the macro is based, namely adding a int=0
* defaulted template parameter, does not work in GCC prior to 4.2 due to
* an unfortunate compiler non-standard extension, as explained in
* http://lists.boost.org/boost-users/2007/07/29866.php
- * We resort to an uglier technique, adding defaulted template parameters
- * so as to exceed BOOST_MPL_LIMIT_METAFUNCTION_ARITY.
+ * As it happens, GCC 7 in C++17 mode and GCC 8 (and presumably later) in
+ * C++11 mode (and presumably later) go back to this old behavior, anticipating
+ * the resolution of CWG DR 150 (see P0522R0).
+ * In these cases we resort to an uglier technique, adding defaulted template
+ * parameters so as to exceed BOOST_MPL_LIMIT_METAFUNCTION_ARITY.
*/
#include <boost/mpl/limits/arity.hpp>