PageRenderTime 45ms CodeModel.GetById 25ms app.highlight 17ms RepoModel.GetById 2ms app.codeStats 0ms

/Src/Dependencies/Boost/boost/proto/transform/detail/preprocessed/lazy.hpp

http://hadesmem.googlecode.com/
C++ Header | 227 lines | 132 code | 88 blank | 7 comment | 0 complexity | 60fdb3f1f103ab1315d2b5cd9aa14a5f MD5 | raw file
  1    ///////////////////////////////////////////////////////////////////////////////
  2    /// \file lazy.hpp
  3    /// Contains definition of the lazy<> transform.
  4    //
  5    //  Copyright 2008 Eric Niebler. Distributed under the Boost
  6    //  Software License, Version 1.0. (See accompanying file
  7    //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  8    
  9    
 10    
 11    
 12    
 13    
 14    
 15    
 16    template<typename Object >
 17    struct lazy<Object()>
 18      : transform<lazy<Object()> >
 19    {
 20        template<typename Expr, typename State, typename Data>
 21        struct impl
 22          : call<
 23                typename make<Object>::template impl<Expr, State, Data>::result_type
 24                ()
 25            >::template impl<Expr, State, Data>
 26        {};
 27    };
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    template<typename Object , typename A0>
 37    struct lazy<Object(A0)>
 38      : transform<lazy<Object(A0)> >
 39    {
 40        template<typename Expr, typename State, typename Data>
 41        struct impl
 42          : call<
 43                typename make<Object>::template impl<Expr, State, Data>::result_type
 44                (A0)
 45            >::template impl<Expr, State, Data>
 46        {};
 47    };
 48    
 49    
 50    
 51    
 52    
 53    
 54    
 55    
 56    template<typename Object , typename A0 , typename A1>
 57    struct lazy<Object(A0 , A1)>
 58      : transform<lazy<Object(A0 , A1)> >
 59    {
 60        template<typename Expr, typename State, typename Data>
 61        struct impl
 62          : call<
 63                typename make<Object>::template impl<Expr, State, Data>::result_type
 64                (A0 , A1)
 65            >::template impl<Expr, State, Data>
 66        {};
 67    };
 68    
 69    
 70    
 71    
 72    
 73    
 74    
 75    
 76    template<typename Object , typename A0 , typename A1 , typename A2>
 77    struct lazy<Object(A0 , A1 , A2)>
 78      : transform<lazy<Object(A0 , A1 , A2)> >
 79    {
 80        template<typename Expr, typename State, typename Data>
 81        struct impl
 82          : call<
 83                typename make<Object>::template impl<Expr, State, Data>::result_type
 84                (A0 , A1 , A2)
 85            >::template impl<Expr, State, Data>
 86        {};
 87    };
 88    
 89    
 90    
 91    
 92    
 93    
 94    
 95    
 96    template<typename Object , typename A0 , typename A1 , typename A2 , typename A3>
 97    struct lazy<Object(A0 , A1 , A2 , A3)>
 98      : transform<lazy<Object(A0 , A1 , A2 , A3)> >
 99    {
100        template<typename Expr, typename State, typename Data>
101        struct impl
102          : call<
103                typename make<Object>::template impl<Expr, State, Data>::result_type
104                (A0 , A1 , A2 , A3)
105            >::template impl<Expr, State, Data>
106        {};
107    };
108    
109    
110    
111    
112    
113    
114    
115    
116    template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
117    struct lazy<Object(A0 , A1 , A2 , A3 , A4)>
118      : transform<lazy<Object(A0 , A1 , A2 , A3 , A4)> >
119    {
120        template<typename Expr, typename State, typename Data>
121        struct impl
122          : call<
123                typename make<Object>::template impl<Expr, State, Data>::result_type
124                (A0 , A1 , A2 , A3 , A4)
125            >::template impl<Expr, State, Data>
126        {};
127    };
128    
129    
130    
131    
132    
133    
134    
135    
136    template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
137    struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5)>
138      : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5)> >
139    {
140        template<typename Expr, typename State, typename Data>
141        struct impl
142          : call<
143                typename make<Object>::template impl<Expr, State, Data>::result_type
144                (A0 , A1 , A2 , A3 , A4 , A5)
145            >::template impl<Expr, State, Data>
146        {};
147    };
148    
149    
150    
151    
152    
153    
154    
155    
156    template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
157    struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
158      : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6)> >
159    {
160        template<typename Expr, typename State, typename Data>
161        struct impl
162          : call<
163                typename make<Object>::template impl<Expr, State, Data>::result_type
164                (A0 , A1 , A2 , A3 , A4 , A5 , A6)
165            >::template impl<Expr, State, Data>
166        {};
167    };
168    
169    
170    
171    
172    
173    
174    
175    
176    template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
177    struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
178      : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)> >
179    {
180        template<typename Expr, typename State, typename Data>
181        struct impl
182          : call<
183                typename make<Object>::template impl<Expr, State, Data>::result_type
184                (A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)
185            >::template impl<Expr, State, Data>
186        {};
187    };
188    
189    
190    
191    
192    
193    
194    
195    
196    template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
197    struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
198      : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)> >
199    {
200        template<typename Expr, typename State, typename Data>
201        struct impl
202          : call<
203                typename make<Object>::template impl<Expr, State, Data>::result_type
204                (A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)
205            >::template impl<Expr, State, Data>
206        {};
207    };
208    
209    
210    
211    
212    
213    
214    
215    
216    template<typename Object , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
217    struct lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
218      : transform<lazy<Object(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)> >
219    {
220        template<typename Expr, typename State, typename Data>
221        struct impl
222          : call<
223                typename make<Object>::template impl<Expr, State, Data>::result_type
224                (A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)
225            >::template impl<Expr, State, Data>
226        {};
227    };