annotate DEPENDENCIES/generic/include/boost/proto/detail/preprocessed/make_expr_funop.hpp @ 133:4acb5d8d80b6 tip

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