~ubuntu-branches/ubuntu/wily/davix/wily

« back to all changes in this revision

Viewing changes to deps/boost_intern/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp

  • Committer: Package Import Robot
  • Author(s): Mattias Ellert
  • Date: 2015-07-31 13:17:55 UTC
  • mfrom: (5.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20150731131755-mizprbmn7ogv33te
Tags: 0.4.1-1
* Update to version 0.4.1
* Implement Multi-Arch support

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
// Copyright Aleksey Gurtovoy 2000-2004
3
 
//
4
 
// Distributed under the Boost Software License, Version 1.0. 
5
 
// (See accompanying file LICENSE_1_0.txt or copy at 
6
 
// http://www.boost.org/LICENSE_1_0.txt)
7
 
//
8
 
 
9
 
// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
10
 
// -- DO NOT modify by hand!
11
 
 
12
 
namespace boost { namespace mpl {
13
 
 
14
 
namespace aux {
15
 
 
16
 
template<
17
 
      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
18
 
    , bool C5 = false
19
 
    >
20
 
struct lambda_or
21
 
    : true_
22
 
{
23
 
};
24
 
 
25
 
template<>
26
 
struct lambda_or< false,false,false,false,false >
27
 
    : false_
28
 
{
29
 
};
30
 
 
31
 
template< typename Arity > struct lambda_impl
32
 
{
33
 
    template< typename T, typename Tag, typename Protect > struct result_
34
 
    {
35
 
        typedef T type;
36
 
        typedef is_placeholder<T> is_le;
37
 
    };
38
 
};
39
 
 
40
 
template<> struct lambda_impl< int_<1> >
41
 
{
42
 
    template< typename F, typename Tag, typename Protect > struct result_
43
 
    {
44
 
        typedef lambda< typename F::arg1, Tag, false_ > l1;
45
 
        typedef typename l1::is_le is_le1;
46
 
        typedef aux::lambda_or<
47
 
              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
48
 
            > is_le;
49
 
 
50
 
        typedef bind1<
51
 
              typename F::rebind
52
 
            , typename l1::type
53
 
            > bind_;
54
 
 
55
 
        typedef typename if_<
56
 
              is_le
57
 
            , if_< Protect, mpl::protect<bind_>, bind_ >
58
 
            , identity<F>
59
 
            >::type type_;
60
 
 
61
 
        typedef typename type_::type type;
62
 
    };
63
 
};
64
 
 
65
 
template<> struct lambda_impl< int_<2> >
66
 
{
67
 
    template< typename F, typename Tag, typename Protect > struct result_
68
 
    {
69
 
        typedef lambda< typename F::arg1, Tag, false_ > l1;
70
 
        typedef lambda< typename F::arg2, Tag, false_ > l2;
71
 
        
72
 
        typedef typename l1::is_le is_le1;
73
 
        typedef typename l2::is_le is_le2;
74
 
        
75
 
 
76
 
        typedef aux::lambda_or<
77
 
              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
78
 
            > is_le;
79
 
 
80
 
        typedef bind2<
81
 
              typename F::rebind
82
 
            , typename l1::type, typename l2::type
83
 
            > bind_;
84
 
 
85
 
        typedef typename if_<
86
 
              is_le
87
 
            , if_< Protect, mpl::protect<bind_>, bind_ >
88
 
            , identity<F>
89
 
            >::type type_;
90
 
 
91
 
        typedef typename type_::type type;
92
 
    };
93
 
};
94
 
 
95
 
template<> struct lambda_impl< int_<3> >
96
 
{
97
 
    template< typename F, typename Tag, typename Protect > struct result_
98
 
    {
99
 
        typedef lambda< typename F::arg1, Tag, false_ > l1;
100
 
        typedef lambda< typename F::arg2, Tag, false_ > l2;
101
 
        typedef lambda< typename F::arg3, Tag, false_ > l3;
102
 
        
103
 
        typedef typename l1::is_le is_le1;
104
 
        typedef typename l2::is_le is_le2;
105
 
        typedef typename l3::is_le is_le3;
106
 
        
107
 
 
108
 
        typedef aux::lambda_or<
109
 
              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
110
 
            > is_le;
111
 
 
112
 
        typedef bind3<
113
 
              typename F::rebind
114
 
            , typename l1::type, typename l2::type, typename l3::type
115
 
            > bind_;
116
 
 
117
 
        typedef typename if_<
118
 
              is_le
119
 
            , if_< Protect, mpl::protect<bind_>, bind_ >
120
 
            , identity<F>
121
 
            >::type type_;
122
 
 
123
 
        typedef typename type_::type type;
124
 
    };
125
 
};
126
 
 
127
 
template<> struct lambda_impl< int_<4> >
128
 
{
129
 
    template< typename F, typename Tag, typename Protect > struct result_
130
 
    {
131
 
        typedef lambda< typename F::arg1, Tag, false_ > l1;
132
 
        typedef lambda< typename F::arg2, Tag, false_ > l2;
133
 
        typedef lambda< typename F::arg3, Tag, false_ > l3;
134
 
        typedef lambda< typename F::arg4, Tag, false_ > l4;
135
 
        
136
 
        typedef typename l1::is_le is_le1;
137
 
        typedef typename l2::is_le is_le2;
138
 
        typedef typename l3::is_le is_le3;
139
 
        typedef typename l4::is_le is_le4;
140
 
        
141
 
 
142
 
        typedef aux::lambda_or<
143
 
              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
144
 
            > is_le;
145
 
 
146
 
        typedef bind4<
147
 
              typename F::rebind
148
 
            , typename l1::type, typename l2::type, typename l3::type
149
 
            , typename l4::type
150
 
            > bind_;
151
 
 
152
 
        typedef typename if_<
153
 
              is_le
154
 
            , if_< Protect, mpl::protect<bind_>, bind_ >
155
 
            , identity<F>
156
 
            >::type type_;
157
 
 
158
 
        typedef typename type_::type type;
159
 
    };
160
 
};
161
 
 
162
 
template<> struct lambda_impl< int_<5> >
163
 
{
164
 
    template< typename F, typename Tag, typename Protect > struct result_
165
 
    {
166
 
        typedef lambda< typename F::arg1, Tag, false_ > l1;
167
 
        typedef lambda< typename F::arg2, Tag, false_ > l2;
168
 
        typedef lambda< typename F::arg3, Tag, false_ > l3;
169
 
        typedef lambda< typename F::arg4, Tag, false_ > l4;
170
 
        typedef lambda< typename F::arg5, Tag, false_ > l5;
171
 
        
172
 
        typedef typename l1::is_le is_le1;
173
 
        typedef typename l2::is_le is_le2;
174
 
        typedef typename l3::is_le is_le3;
175
 
        typedef typename l4::is_le is_le4;
176
 
        typedef typename l5::is_le is_le5;
177
 
        
178
 
 
179
 
        typedef aux::lambda_or<
180
 
              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
181
 
            > is_le;
182
 
 
183
 
        typedef bind5<
184
 
              typename F::rebind
185
 
            , typename l1::type, typename l2::type, typename l3::type
186
 
            , typename l4::type, typename l5::type
187
 
            > bind_;
188
 
 
189
 
        typedef typename if_<
190
 
              is_le
191
 
            , if_< Protect, mpl::protect<bind_>, bind_ >
192
 
            , identity<F>
193
 
            >::type type_;
194
 
 
195
 
        typedef typename type_::type type;
196
 
    };
197
 
};
198
 
 
199
 
} // namespace aux
200
 
 
201
 
template<
202
 
      typename T
203
 
    , typename Tag
204
 
    , typename Protect
205
 
    >
206
 
struct lambda
207
 
{
208
 
    /// Metafunction forwarding confuses MSVC 6.x
209
 
    typedef typename aux::template_arity<T>::type arity_;
210
 
    typedef typename aux::lambda_impl<arity_>
211
 
        ::template result_< T,Tag,Protect > l_;
212
 
 
213
 
    typedef typename l_::type type;
214
 
    typedef typename l_::is_le is_le;
215
 
    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
216
 
};
217
 
 
218
 
BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
219
 
 
220
 
template<
221
 
      typename T
222
 
    >
223
 
struct is_lambda_expression
224
 
    : lambda<T>::is_le
225
 
{
226
 
};
227
 
 
228
 
}}
229