• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2001-2007 Joel de Guzman
3 
4     Distributed under the Boost Software License, Version 1.0. (See accompanying
5     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 
8 #if !BOOST_PHOENIX_IS_ITERATING
9 
10 #include <boost/phoenix/core/expression.hpp>
11 #include <boost/phoenix/core/detail/function_eval.hpp>
12 
13 namespace boost { namespace phoenix {
14     template <typename F>
15     inline
16     typename detail::expression::function_eval<F>::type const
bind(F f)17     bind(F f)
18     {
19         return detail::expression::function_eval<F>::make(f);
20     }
21 
22 #if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
23     #include <boost/phoenix/bind/detail/cpp03/preprocessed/bind_function_object.hpp>
24 #else
25 
26 #if defined(__WAVE__) && defined (BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
27     #pragma wave option(preserve: 2, line: 0, output: "preprocessed/bind_function_object_" BOOST_PHOENIX_LIMIT_STR ".hpp")
28 #endif
29 
30 /*=============================================================================
31     Copyright (c) 2001-2007 Joel de Guzman
32 
33     Distributed under the Boost Software License, Version 1.0. (See accompanying
34     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
35 ==============================================================================*/
36 
37 #if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
38     #pragma wave option(preserve: 1)
39 #endif
40 
41 #define BOOST_PHOENIX_ITERATION_PARAMS                                          \
42     (3, (1, BOOST_PP_DEC(BOOST_PHOENIX_ACTOR_LIMIT),                            \
43             <boost/phoenix/bind/detail/cpp03/bind_function_object.hpp>))
44 #include BOOST_PHOENIX_ITERATE()
45 
46 #if defined(__WAVE__) && defined (BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
47     #pragma wave option(output: null)
48 #endif
49 
50 #endif
51 
52 }}
53 
54 #else
55 
56     template <
57         typename F
58       , BOOST_PHOENIX_typename_A
59     >
60     inline
61     typename detail::expression::function_eval<
62         F
63       , BOOST_PHOENIX_A
64     >::type const
bind(F f,BOOST_PHOENIX_A_const_ref_a)65     bind(F f, BOOST_PHOENIX_A_const_ref_a)
66     {
67         return
68             detail::expression::function_eval<F, BOOST_PHOENIX_A>::make(
69                 f
70               , BOOST_PHOENIX_a
71             );
72     }
73 
74 #endif
75