1 /////////////////////////////////////////////////////////////// 2 // Copyright 2013 John Maddock. Distributed under the Boost 3 // Software License, Version 1.0. (See accompanying file 4 // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt 5 6 #ifndef BOOST_MP_CPP_INT_VP_HPP 7 #define BOOST_MP_CPP_INT_VP_HPP 8 9 namespace boost { 10 namespace multiprecision { 11 12 namespace literals { namespace detail { 13 14 template <limb_type... VALUES> 15 struct value_pack 16 { value_packboost::multiprecision::literals::detail::value_pack17 constexpr value_pack() {} 18 19 typedef value_pack<0, VALUES...> next_type; 20 }; 21 template <class T> 22 struct is_value_pack 23 { 24 static constexpr bool value = false; 25 }; 26 template <limb_type... VALUES> 27 struct is_value_pack<value_pack<VALUES...> > 28 { 29 static constexpr bool value = true; 30 }; 31 32 struct negate_tag 33 {}; 34 make_negate_tag()35constexpr negate_tag make_negate_tag() 36 { 37 return negate_tag(); 38 } 39 40 }}}} // namespace boost::multiprecision::literals::detail 41 42 #endif // BOOST_MP_CPP_INT_CORE_HPP 43