is_argument_pack.hpp 836 B

1234567891011121314151617181920212223242526272829
  1. // Copyright Cromwell D. Enage 2018.
  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_IS_ARGUMENT_PACK_HPP
  6. #define BOOST_PARAMETER_IS_ARGUMENT_PACK_HPP
  7. #include <boost/parameter/aux_/is_tagged_argument.hpp>
  8. #include <boost/parameter/aux_/arg_list.hpp>
  9. #include <boost/mpl/bool.hpp>
  10. #include <boost/mpl/if.hpp>
  11. #include <boost/type_traits/is_base_of.hpp>
  12. namespace boost { namespace parameter {
  13. template <typename T>
  14. struct is_argument_pack
  15. : ::boost::mpl::if_<
  16. ::boost::is_base_of< ::boost::parameter::aux::empty_arg_list,T>
  17. , ::boost::mpl::true_
  18. , ::boost::parameter::aux::is_tagged_argument<T>
  19. >::type
  20. {
  21. };
  22. }}
  23. #endif // include guard