annotate DEPENDENCIES/generic/include/boost/spirit/home/support/terminal_expression.hpp @ 25:14ff78c4fa42

Merge
author Chris Cannam
date Tue, 05 Aug 2014 17:20:38 +0100
parents 2665513ce2d3
children c530137014c0
rev   line source
Chris@16 1 /*=============================================================================
Chris@16 2 Copyright (c) 2001-2011 Joel de Guzman
Chris@16 3 Copyright (c) 2001-2011 Hartmut Kaiser
Chris@16 4 Copyright (c) 2011 Thomas Heller
Chris@16 5
Chris@16 6 Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 8 ==============================================================================*/
Chris@16 9 #if !defined(BOOST_SPIRIT_TERMINAL_EXPRESSION_MARCH_24_2011_1210AM)
Chris@16 10 #define BOOST_SPIRIT_TERMINAL_EXPRESSION_MARCH_24_2011_1210AM
Chris@16 11
Chris@16 12 #ifndef BOOST_SPIRIT_USE_PHOENIX_V3
Chris@16 13
Chris@16 14 namespace boost { namespace phoenix { namespace detail
Chris@16 15 {
Chris@16 16 namespace expression
Chris@16 17 {
Chris@16 18 template <
Chris@16 19 typename F, typename A0 = void, typename A1 = void
Chris@16 20 , typename A2 = void, typename Dummy = void>
Chris@16 21 struct function_eval;
Chris@16 22
Chris@16 23 template <typename F, typename A0>
Chris@16 24 struct function_eval<F, A0>
Chris@16 25 {
Chris@16 26 typedef phoenix::actor<
Chris@16 27 typename phoenix::as_composite<
Chris@16 28 phoenix::detail::function_eval<1>, F, A0
Chris@16 29 >::type
Chris@16 30 > type;
Chris@16 31
Chris@16 32 static type make(F f, A0 const & _0)
Chris@16 33 {
Chris@16 34 return phoenix::compose<
Chris@16 35 phoenix::detail::function_eval<1> >(f, _0);
Chris@16 36 }
Chris@16 37 };
Chris@16 38
Chris@16 39 template <typename F, typename A0, typename A1>
Chris@16 40 struct function_eval<F, A0, A1>
Chris@16 41 {
Chris@16 42 typedef phoenix::actor<
Chris@16 43 typename phoenix::as_composite<
Chris@16 44 phoenix::detail::function_eval<2>, F, A0, A1
Chris@16 45 >::type
Chris@16 46 > type;
Chris@16 47
Chris@16 48 static type make(F f, A0 const & _0, A1 const & _1)
Chris@16 49 {
Chris@16 50 return phoenix::compose<
Chris@16 51 phoenix::detail::function_eval<2> >(f, _0, _1);
Chris@16 52 }
Chris@16 53 };
Chris@16 54
Chris@16 55 template <typename F, typename A0, typename A1, typename A2>
Chris@16 56 struct function_eval<F, A0, A1, A2>
Chris@16 57 {
Chris@16 58 typedef phoenix::actor<
Chris@16 59 typename phoenix::as_composite<
Chris@16 60 phoenix::detail::function_eval<3>, F, A0, A1, A2
Chris@16 61 >::type
Chris@16 62 > type;
Chris@16 63
Chris@16 64 static type make(F f, A0 const & _0, A1 const & _1, A2 const & _2)
Chris@16 65 {
Chris@16 66 return phoenix::compose<
Chris@16 67 phoenix::detail::function_eval<3> >(f, _0, _1, _2);
Chris@16 68 }
Chris@16 69 };
Chris@16 70 }
Chris@16 71 }}}
Chris@16 72
Chris@16 73 #endif // !BOOST_SPIRIT_USE_PHOENIX_V3
Chris@16 74
Chris@16 75 #endif