1 #ifndef BOOST_MP11_DETAIL_CONFIG_HPP_INCLUDED
2 #define BOOST_MP11_DETAIL_CONFIG_HPP_INCLUDED
4 // Copyright 2016 Peter Dimov.
6 // Distributed under the Boost Software License, Version 1.0.
8 // See accompanying file LICENSE_1_0.txt or copy at
9 // http://www.boost.org/LICENSE_1_0.txt
11 #include <boost/config.hpp>
12 #include <boost/detail/workaround.hpp>
14 #if defined( BOOST_NO_CXX11_CONSTEXPR )
16 # define BOOST_MP11_NO_CONSTEXPR
18 #elif defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1920 )
20 # define BOOST_MP11_NO_CONSTEXPR
24 #if defined(__cpp_fold_expressions) && __cpp_fold_expressions >= 201603
26 # define BOOST_MP11_HAS_FOLD_EXPRESSIONS
28 #elif defined(BOOST_CLANG) && defined(__has_cpp_attribute)
29 # if __has_cpp_attribute(fallthrough) && __cplusplus >= 201406L // Clang 3.9+ in c++1z mode
31 # define BOOST_MP11_HAS_FOLD_EXPRESSIONS
36 #if defined(__has_builtin)
37 # if __has_builtin(__type_pack_element)
39 # define BOOST_MP11_HAS_TYPE_PACK_ELEMENT
44 #endif // #ifndef BOOST_MP11_DETAIL_CONFIG_HPP_INCLUDED