• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*==============================================================================
2     Copyright (c) 2005-2010 Joel de Guzman
3     Copyright (c) 2010 Thomas Heller
4 
5     Distributed under the Boost Software License, Version 1.0. (See accompanying
6     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 ==============================================================================*/
8 
9 
10 
11 
12 
13 
14 
15     template <typename T, typename A0>
16     inline
17     typename expression::construct<detail::target<T>, A0>::type const
construct(A0 const & a0)18     construct(A0 const& a0)
19     {
20         return
21             expression::
22                 construct<detail::target<T>, A0>::
23                     make(detail::target<T>(), a0);
24     }
25 
26 
27 
28 
29 
30 
31 
32     template <typename T, typename A0 , typename A1>
33     inline
34     typename expression::construct<detail::target<T>, A0 , A1>::type const
construct(A0 const & a0,A1 const & a1)35     construct(A0 const& a0 , A1 const& a1)
36     {
37         return
38             expression::
39                 construct<detail::target<T>, A0 , A1>::
40                     make(detail::target<T>(), a0 , a1);
41     }
42 
43 
44 
45 
46 
47 
48 
49     template <typename T, typename A0 , typename A1 , typename A2>
50     inline
51     typename expression::construct<detail::target<T>, A0 , A1 , A2>::type const
construct(A0 const & a0,A1 const & a1,A2 const & a2)52     construct(A0 const& a0 , A1 const& a1 , A2 const& a2)
53     {
54         return
55             expression::
56                 construct<detail::target<T>, A0 , A1 , A2>::
57                     make(detail::target<T>(), a0 , a1 , a2);
58     }
59 
60 
61 
62 
63 
64 
65 
66     template <typename T, typename A0 , typename A1 , typename A2 , typename A3>
67     inline
68     typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3>::type const
construct(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3)69     construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3)
70     {
71         return
72             expression::
73                 construct<detail::target<T>, A0 , A1 , A2 , A3>::
74                     make(detail::target<T>(), a0 , a1 , a2 , a3);
75     }
76 
77 
78 
79 
80 
81 
82 
83     template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
84     inline
85     typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::type const
construct(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4)86     construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4)
87     {
88         return
89             expression::
90                 construct<detail::target<T>, A0 , A1 , A2 , A3 , A4>::
91                     make(detail::target<T>(), a0 , a1 , a2 , a3 , a4);
92     }
93 
94 
95 
96 
97 
98 
99 
100     template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
101     inline
102     typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::type const
construct(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5)103     construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5)
104     {
105         return
106             expression::
107                 construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5>::
108                     make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5);
109     }
110 
111 
112 
113 
114 
115 
116 
117     template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
118     inline
119     typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::type const
construct(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6)120     construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6)
121     {
122         return
123             expression::
124                 construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6>::
125                     make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6);
126     }
127 
128 
129 
130 
131 
132 
133 
134     template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
135     inline
136     typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::type const
construct(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7)137     construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7)
138     {
139         return
140             expression::
141                 construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>::
142                     make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
143     }
144 
145 
146 
147 
148 
149 
150 
151     template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
152     inline
153     typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::type const
construct(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7,A8 const & a8)154     construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8)
155     {
156         return
157             expression::
158                 construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>::
159                     make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
160     }
161 
162 
163 
164 
165 
166 
167 
168     template <typename T, typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
169     inline
170     typename expression::construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::type const
construct(A0 const & a0,A1 const & a1,A2 const & a2,A3 const & a3,A4 const & a4,A5 const & a5,A6 const & a6,A7 const & a7,A8 const & a8,A9 const & a9)171     construct(A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9)
172     {
173         return
174             expression::
175                 construct<detail::target<T>, A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>::
176                     make(detail::target<T>(), a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
177     }
178