Ugly, not-to-be-pushed sucking in of all of Boost to get windows to work.
[dyninst.git] / external / boost / lambda / core.hpp
1 // -- core.hpp -- Boost Lambda Library -------------------------------------
2 //
3 // Copyright (C) 2000 Gary Powell (powellg@amazon.com)
4 // Copyright (C) 1999, 2000 Jaakko J√§rvi (jaakko.jarvi@cs.utu.fi)
5 //
6 // Distributed under the Boost Software License, Version 1.0. (See
7 // accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
9 //
10 // For more information, see www.boost.org
11 // 
12 // Includes the core of LL, without any real features for client:
13 // 
14 // tuples, lambda functors, return type deduction templates,
15 // argument substitution mechanism (select functions)
16 // 
17 // Some functionality comes as well:
18 // Assignment and subscript operators, as well as function
19 // call operator for placeholder variables.
20 // -------------------------------------------------------------------------
21
22 #ifndef BOOST_LAMBDA_CORE_HPP
23 #define BOOST_LAMBDA_CORE_HPP
24
25 #include "boost/type_traits/transform_traits.hpp"
26 #include "boost/type_traits/cv_traits.hpp"
27
28 #include "boost/tuple/tuple.hpp"
29
30 // inject some of the tuple names into lambda 
31 namespace boost {
32 namespace lambda {
33
34 using ::boost::tuples::tuple;
35 using ::boost::tuples::null_type;
36
37 } // lambda
38 } // boost
39
40 #include "boost/lambda/detail/lambda_config.hpp"
41 #include "boost/lambda/detail/lambda_fwd.hpp"
42
43 #include "boost/lambda/detail/arity_code.hpp"
44 #include "boost/lambda/detail/actions.hpp"
45
46 #include "boost/lambda/detail/lambda_traits.hpp"
47
48 #include "boost/lambda/detail/function_adaptors.hpp"
49 #include "boost/lambda/detail/return_type_traits.hpp"
50
51 #include "boost/lambda/detail/select_functions.hpp"
52
53 #include "boost/lambda/detail/lambda_functor_base.hpp"
54
55 #include "boost/lambda/detail/lambda_functors.hpp"
56
57 #include "boost/lambda/detail/ret.hpp"
58
59 namespace boost {
60 namespace lambda {
61
62 namespace {
63
64   // These are constants types and need to be initialised
65   boost::lambda::placeholder1_type free1 = boost::lambda::placeholder1_type();
66   boost::lambda::placeholder2_type free2 = boost::lambda::placeholder2_type();
67   boost::lambda::placeholder3_type free3 = boost::lambda::placeholder3_type();
68
69   boost::lambda::placeholder1_type& _1 = free1;
70   boost::lambda::placeholder2_type& _2 = free2;
71   boost::lambda::placeholder3_type& _3 = free3;
72   // _1, _2, ... naming scheme by Peter Dimov
73 } // unnamed
74    
75 } // lambda
76 } // boost
77    
78    
79 #endif //BOOST_LAMBDA_CORE_HPP