1
2#if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
3#ifndef BOOST_PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
4#define BOOST_PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
5
6#include <boost/phoenix/function/detail/cpp03/preprocessed/function_operator.hpp>
7
8#endif
9#else
10
11#if !BOOST_PHOENIX_IS_ITERATING
12
13#ifndef BOOST_PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
14#define BOOST_PHOENIX_FUNCTION_DETAIL_FUNCTION_OPERATOR_HPP
15
16#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
17#pragma wave option(preserve: 2, line: 0, output: "preprocessed/function_operator_" BOOST_PHOENIX_LIMIT_STR ".hpp")
18#endif
19
20/*==============================================================================
21 Copyright (c) 2005-2010 Joel de Guzman
22 Copyright (c) 2010 Thomas Heller
23
24 Distributed under the Boost Software License, Version 1.0. (See accompanying
25 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
26==============================================================================*/
27
28#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
29#pragma wave option(preserve: 1)
30#endif
31
32#define BOOST_PHOENIX_ITERATION_PARAMS \
33 (3, (1, BOOST_PHOENIX_ACTOR_LIMIT, \
34 <boost/phoenix/function/detail/cpp03/function_operator.hpp>))
35#include BOOST_PHOENIX_ITERATE()
36
37#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
38#pragma wave option(output: null)
39#endif
40
41#endif
42
43#else
44 template <typename This, BOOST_PHOENIX_typename_A>
45 struct result<This(BOOST_PHOENIX_A_const_ref)>
46 : detail::expression::function_eval<F, BOOST_PHOENIX_A>
47 {};
48
49 template <BOOST_PHOENIX_typename_A>
50 typename detail::expression::function_eval<F, BOOST_PHOENIX_A>::type const
51 operator()(BOOST_PHOENIX_A_const_ref_a) const
52 {
53 return detail::expression::function_eval<F, BOOST_PHOENIX_A>::make(f, BOOST_PHOENIX_a);
54 }
55
56#endif
57
58#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES
59