/* Copyright 2008 Vicente J. Botet Escriba * Distributed under 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) * * See http://www.boost.org/libs/ for library home page. */ #ifndef BOOST_PP_IS_ITERATING #ifndef BOOST_DSL_EXPR_PP_HPP_ #define BOOST_DSL_EXPR_PP_HPP_ # include # include # include # include #ifndef BOOST_DSL_EXPR_ARITY #define BOOST_DSL_EXPR_ARITY 5 #endif // generate specializations # define BOOST_PP_ITERATION_LIMITS (1, BOOST_DSL_EXPR_ARITY) # define BOOST_PP_FILENAME_1 "boost/dsl/expr_pp.hpp" // this file # include BOOST_PP_ITERATE() #endif // BOOST_DSL_EXPR_HPP_ #else // BOOST_PP_IS_ITERATING # define n BOOST_PP_ITERATION() # define BOOST_DSL_EXPR_signature_parameter(z, n, data) \ typename signature_parameter::type namespace boost { namespace dsl { namespace detail{ template struct signature >{ typedef parameter::parameters< BOOST_PP_ENUM(n,BOOST_DSL_EXPR_signature_parameter,~) > type; }; template struct args > { typedef typename Signature::template bind::type type; }; template struct unmatched_args > { typedef typename UnmatchedSignature::template bind::type type; }; } } } # undef n # undef BOOST_DSL_EXPR_signature_parameter #endif // BOOST_PP_IS_ITERATING