diff options
Diffstat (limited to 'boost/flyweight/detail/not_placeholder_expr.hpp')
-rw-r--r-- | boost/flyweight/detail/not_placeholder_expr.hpp | 13 |
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> |