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
6#ifndef BOOST_PARAMETER_AUX_PACK_UNMATCHED_ARGUMENT_HPP
7#define BOOST_PARAMETER_AUX_PACK_UNMATCHED_ARGUMENT_HPP
8
9#include <boost/parameter/config.hpp>
10
11#if defined(BOOST_PARAMETER_CAN_USE_MP11)
12#include <type_traits>
13#else
14#include <boost/mpl/bool.hpp>
15#include <boost/mpl/if.hpp>
16#include <boost/mpl/assert.hpp>
17#include <boost/type_traits/is_same.hpp>
18#endif
19
20namespace boost { namespace parameter { namespace aux {
21
22 template <typename T>
23 struct unmatched_argument
24 {
25#if defined(BOOST_PARAMETER_CAN_USE_MP11)
26 static_assert(::std::is_same<T,void>::value, "T == void");
27#else
28 BOOST_MPL_ASSERT((
29 typename ::boost::mpl::if_<
30 ::boost::is_same<T,void>
31 , ::boost::mpl::true_
32 , ::boost::mpl::false_
33 >::type
34 ));
35#endif
36 typedef int type;
37 };
38}}} // namespace boost::parameter::aux
39
40#endif // include guard
41
42

source code of boost/libs/parameter/include/boost/parameter/aux_/pack/unmatched_argument.hpp