Publishing R3
[platform/upstream/dldt.git] / inference-engine / thirdparty / clDNN / common / boost / 1.64.0 / include / boost-1_64 / boost / proto / detail / preprocessed / make_expr_funop.hpp
1     ///////////////////////////////////////////////////////////////////////////////
2     /// \file make_expr_funop.hpp
3     /// Contains definition of make_expr\<\>::operator() member functions.
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     template<typename This , typename A0 , typename A1>
9     struct result<This(A0 , A1)>
10     {
11         typedef
12             typename result_of::make_expr<
13                 Tag
14               , Domain
15                 , A0 , A1
16             >::type
17         type;
18     };
19     
20     
21     template<typename A0 , typename A1>
22     BOOST_FORCEINLINE
23     typename result_of::make_expr<
24         Tag
25       , Domain
26         , const A0 , const A1
27     >::type const
28     operator ()(const A0 &a0 , const A1 &a1) const
29     {
30         return proto::detail::make_expr_<
31             Tag
32           , Domain
33             , const A0 , const A1
34         >()(a0 , a1);
35     }
36     template<typename This , typename A0 , typename A1 , typename A2>
37     struct result<This(A0 , A1 , A2)>
38     {
39         typedef
40             typename result_of::make_expr<
41                 Tag
42               , Domain
43                 , A0 , A1 , A2
44             >::type
45         type;
46     };
47     
48     
49     template<typename A0 , typename A1 , typename A2>
50     BOOST_FORCEINLINE
51     typename result_of::make_expr<
52         Tag
53       , Domain
54         , const A0 , const A1 , const A2
55     >::type const
56     operator ()(const A0 &a0 , const A1 &a1 , const A2 &a2) const
57     {
58         return proto::detail::make_expr_<
59             Tag
60           , Domain
61             , const A0 , const A1 , const A2
62         >()(a0 , a1 , a2);
63     }
64     template<typename This , typename A0 , typename A1 , typename A2 , typename A3>
65     struct result<This(A0 , A1 , A2 , A3)>
66     {
67         typedef
68             typename result_of::make_expr<
69                 Tag
70               , Domain
71                 , A0 , A1 , A2 , A3
72             >::type
73         type;
74     };
75     
76     
77     template<typename A0 , typename A1 , typename A2 , typename A3>
78     BOOST_FORCEINLINE
79     typename result_of::make_expr<
80         Tag
81       , Domain
82         , const A0 , const A1 , const A2 , const A3
83     >::type const
84     operator ()(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3) const
85     {
86         return proto::detail::make_expr_<
87             Tag
88           , Domain
89             , const A0 , const A1 , const A2 , const A3
90         >()(a0 , a1 , a2 , a3);
91     }
92     template<typename This , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
93     struct result<This(A0 , A1 , A2 , A3 , A4)>
94     {
95         typedef
96             typename result_of::make_expr<
97                 Tag
98               , Domain
99                 , A0 , A1 , A2 , A3 , A4
100             >::type
101         type;
102     };
103     
104     
105     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
106     BOOST_FORCEINLINE
107     typename result_of::make_expr<
108         Tag
109       , Domain
110         , const A0 , const A1 , const A2 , const A3 , const A4
111     >::type const
112     operator ()(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4) const
113     {
114         return proto::detail::make_expr_<
115             Tag
116           , Domain
117             , const A0 , const A1 , const A2 , const A3 , const A4
118         >()(a0 , a1 , a2 , a3 , a4);
119     }
120     template<typename This , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
121     struct result<This(A0 , A1 , A2 , A3 , A4 , A5)>
122     {
123         typedef
124             typename result_of::make_expr<
125                 Tag
126               , Domain
127                 , A0 , A1 , A2 , A3 , A4 , A5
128             >::type
129         type;
130     };
131     
132     
133     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
134     BOOST_FORCEINLINE
135     typename result_of::make_expr<
136         Tag
137       , Domain
138         , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
139     >::type const
140     operator ()(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5) const
141     {
142         return proto::detail::make_expr_<
143             Tag
144           , Domain
145             , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
146         >()(a0 , a1 , a2 , a3 , a4 , a5);
147     }
148     template<typename This , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
149     struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6)>
150     {
151         typedef
152             typename result_of::make_expr<
153                 Tag
154               , Domain
155                 , A0 , A1 , A2 , A3 , A4 , A5 , A6
156             >::type
157         type;
158     };
159     
160     
161     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
162     BOOST_FORCEINLINE
163     typename result_of::make_expr<
164         Tag
165       , Domain
166         , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
167     >::type const
168     operator ()(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5 , const A6 &a6) const
169     {
170         return proto::detail::make_expr_<
171             Tag
172           , Domain
173             , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
174         >()(a0 , a1 , a2 , a3 , a4 , a5 , a6);
175     }
176     template<typename This , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
177     struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7)>
178     {
179         typedef
180             typename result_of::make_expr<
181                 Tag
182               , Domain
183                 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7
184             >::type
185         type;
186     };
187     
188     
189     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
190     BOOST_FORCEINLINE
191     typename result_of::make_expr<
192         Tag
193       , Domain
194         , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
195     >::type const
196     operator ()(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5 , const A6 &a6 , const A7 &a7) const
197     {
198         return proto::detail::make_expr_<
199             Tag
200           , Domain
201             , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
202         >()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
203     }
204     template<typename This , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
205     struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8)>
206     {
207         typedef
208             typename result_of::make_expr<
209                 Tag
210               , Domain
211                 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8
212             >::type
213         type;
214     };
215     
216     
217     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
218     BOOST_FORCEINLINE
219     typename result_of::make_expr<
220         Tag
221       , Domain
222         , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
223     >::type const
224     operator ()(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5 , const A6 &a6 , const A7 &a7 , const A8 &a8) const
225     {
226         return proto::detail::make_expr_<
227             Tag
228           , Domain
229             , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
230         >()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
231     }
232     template<typename This , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
233     struct result<This(A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9)>
234     {
235         typedef
236             typename result_of::make_expr<
237                 Tag
238               , Domain
239                 , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9
240             >::type
241         type;
242     };
243     
244     
245     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
246     BOOST_FORCEINLINE
247     typename result_of::make_expr<
248         Tag
249       , Domain
250         , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 , const A9
251     >::type const
252     operator ()(const A0 &a0 , const A1 &a1 , const A2 &a2 , const A3 &a3 , const A4 &a4 , const A5 &a5 , const A6 &a6 , const A7 &a7 , const A8 &a8 , const A9 &a9) const
253     {
254         return proto::detail::make_expr_<
255             Tag
256           , Domain
257             , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 , const A9
258         >()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
259     }