]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/flyweight/detail/not_placeholder_expr.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / flyweight / detail / not_placeholder_expr.hpp
index 004c67035a79186a6324de132fe25a359e2da08c..ce5f8fbde9435e6f1171727c209d53994b209866 100644 (file)
@@ -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)
 #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>