deduced_item.hpp 965 B

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright David Abrahams, Daniel Wallin 2003.
  2. // Distributed under the Boost Software License, Version 1.0.
  3. // (See accompanying file LICENSE_1_0.txt or copy at
  4. // http://www.boost.org/LICENSE_1_0.txt)
  5. #ifndef BOOST_PARAMETER_AUX_PACK_DEDUCED_ITEM_HPP
  6. #define BOOST_PARAMETER_AUX_PACK_DEDUCED_ITEM_HPP
  7. #include <boost/parameter/aux_/void.hpp>
  8. namespace boost { namespace parameter { namespace aux {
  9. // A typelist that stored deduced parameter specs.
  10. template <
  11. typename ParameterSpec
  12. , typename Tail = ::boost::parameter::void_
  13. >
  14. struct deduced_item
  15. {
  16. typedef ParameterSpec spec;
  17. typedef Tail tail;
  18. };
  19. // Evaluate Tail and construct deduced_item list.
  20. template <typename Spec, typename Tail>
  21. struct make_deduced_item
  22. {
  23. typedef ::boost::parameter::aux
  24. ::deduced_item<Spec,typename Tail::type> type;
  25. };
  26. }}} // namespace boost::parameter::aux
  27. #endif // include guard