/usr/include/boost/parameter/aux_/python
Edit: /usr/include/boost/parameter/aux_/python/invoker.hpp (3078B)
// Copyright Daniel Wallin 2005. Use, modification and distribution is
// subject to the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PARAMETER_INVOKER_051210_HPP
# define BOOST_PARAMETER_INVOKER_051210_HPP
# include
# include
# include
# include
# include
# include
namespace boost { namespace parameter { namespace python { namespace aux {
template
struct invoker;
template
struct make_invoker
{
template
struct apply
{
typedef invoker<
mpl::size::value, M, R, Args
> type;
};
};
template
struct member_invoker;
template
struct make_member_invoker
{
template
struct apply
{
typedef member_invoker<
mpl::size::value, M, R, T, Args
> type;
};
};
template
struct call_invoker;
template
struct make_call_invoker
{
template
struct apply
{
typedef call_invoker<
mpl::size::value, T, R, Args
> type;
};
};
template
struct init_invoker;
template
struct make_init_invoker
{
template
struct apply
{
typedef init_invoker<
mpl::size::value, T, Args
> type;
};
};
template
struct invoker<0, M, R, Args>
{
static R execute()
{
return M()(boost::type());
}
};
template
struct member_invoker<0, M, R, T, Args>
{
static R execute(T& self)
{
return M()(boost::type(), self);
}
};
template
struct call_invoker<0, T, R, Args>
{
static R execute(T& self)
{
return self();
}
};
template
struct init_invoker<0, T, Args>
{
static T* execute(T& self)
{
return new T;
}
};
# define BOOST_PP_ITERATION_PARAMS_1 (4, \
(1, BOOST_PARAMETER_MAX_ARITY, , 1))
# include BOOST_PP_ITERATE()
# define BOOST_PP_ITERATION_PARAMS_1 (4, \
(1, BOOST_PARAMETER_MAX_ARITY, , 2))
# include BOOST_PP_ITERATE()
# define BOOST_PP_ITERATION_PARAMS_1 (4, \
(1, BOOST_PARAMETER_MAX_ARITY, , 3))
# include BOOST_PP_ITERATE()
# define BOOST_PP_ITERATION_PARAMS_1 (4, \
(1, BOOST_PARAMETER_MAX_ARITY, , 4))
# include BOOST_PP_ITERATE()
}}}} // namespace boost::parameter::python::aux
#endif // BOOST_PARAMETER_INVOKER_051210_HPP