value_pack.hpp 869 B

123456789101112131415161718192021222324252627282930313233343536
  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 http://www.boost.org/LICENSE_1_
  5. #ifndef BOOST_MP_CPP_INT_VP_HPP
  6. #define BOOST_MP_CPP_INT_VP_HPP
  7. namespace boost{ namespace multiprecision{
  8. namespace literals{ namespace detail{
  9. template <limb_type...VALUES>
  10. struct value_pack
  11. {
  12. constexpr value_pack(){}
  13. typedef value_pack<0, VALUES...> next_type;
  14. };
  15. template <class T>
  16. struct is_value_pack{ static constexpr bool value = false; };
  17. template <limb_type...VALUES>
  18. struct is_value_pack<value_pack<VALUES...> >{ static constexpr bool value = true; };
  19. struct negate_tag{};
  20. constexpr negate_tag make_negate_tag()
  21. {
  22. return negate_tag();
  23. }
  24. }}}} // namespaces
  25. #endif // BOOST_MP_CPP_INT_CORE_HPP