123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- ///////////////////////////////////////////////////////////////////////////////
- // expr1.hpp
- // Contains definition of expr\<\>::operator() overloads.
- //
- // Copyright 2008 Eric Niebler. Distributed under the Boost
- // Software License, Version 1.0. (See accompanying file
- // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- #define N BOOST_PP_ITERATION()
- /// \overload
- ///
- template<BOOST_PP_ENUM_PARAMS(N, typename A)>
- BOOST_FORCEINLINE
- typename result_of::BOOST_PP_CAT(funop, N)<
- expr const
- , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
- >::type const
- operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a)) const
- {
- return result_of::BOOST_PP_CAT(funop, N)<
- expr const
- , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
- >::call(*this BOOST_PP_ENUM_TRAILING_PARAMS(N, a));
- }
- #ifdef BOOST_PROTO_DEFINE_TERMINAL
- /// \overload
- ///
- template<BOOST_PP_ENUM_PARAMS(N, typename A)>
- BOOST_FORCEINLINE
- typename result_of::BOOST_PP_CAT(funop, N)<
- expr
- , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
- >::type const
- operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a))
- {
- return result_of::BOOST_PP_CAT(funop, N)<
- expr
- , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
- >::call(*this BOOST_PP_ENUM_TRAILING_PARAMS(N, a));
- }
- #endif
- #undef N
|