]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | /////////////////////////////////////////////////////////////////////////////// |
2 | // expr1.hpp | |
3 | // Contains definition of expr\<\>::operator() overloads. | |
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 | #define N BOOST_PP_ITERATION() | |
10 | ||
11 | /// \overload | |
12 | /// | |
13 | template<BOOST_PP_ENUM_PARAMS(N, typename A)> | |
14 | BOOST_FORCEINLINE | |
15 | typename result_of::BOOST_PP_CAT(funop, N)< | |
16 | expr const | |
17 | , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A) | |
18 | >::type const | |
19 | operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a)) const | |
20 | { | |
21 | return result_of::BOOST_PP_CAT(funop, N)< | |
22 | expr const | |
23 | , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A) | |
24 | >::call(*this BOOST_PP_ENUM_TRAILING_PARAMS(N, a)); | |
25 | } | |
26 | ||
27 | #ifdef BOOST_PROTO_DEFINE_TERMINAL | |
28 | /// \overload | |
29 | /// | |
30 | template<BOOST_PP_ENUM_PARAMS(N, typename A)> | |
31 | BOOST_FORCEINLINE | |
32 | typename result_of::BOOST_PP_CAT(funop, N)< | |
33 | expr | |
34 | , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A) | |
35 | >::type const | |
36 | operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a)) | |
37 | { | |
38 | return result_of::BOOST_PP_CAT(funop, N)< | |
39 | expr | |
40 | , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A) | |
41 | >::call(*this BOOST_PP_ENUM_TRAILING_PARAMS(N, a)); | |
42 | } | |
43 | #endif | |
44 | ||
45 | #undef N |