Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:50:26

0001 ///////////////////////////////////////////////////////////////////////////////
0002 // expr1.hpp
0003 // Contains definition of expr\<\>::operator() overloads.
0004 //
0005 //  Copyright 2008 Eric Niebler. Distributed under the Boost
0006 //  Software License, Version 1.0. (See accompanying file
0007 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008 
0009 #define N BOOST_PP_ITERATION()
0010 
0011         /// \overload
0012         ///
0013         template<BOOST_PP_ENUM_PARAMS(N, typename A)>
0014         BOOST_FORCEINLINE
0015         typename result_of::BOOST_PP_CAT(funop, N)<
0016             expr const
0017           , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
0018         >::type const
0019         operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a)) const
0020         {
0021             return result_of::BOOST_PP_CAT(funop, N)<
0022                 expr const
0023               , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
0024             >::call(*this BOOST_PP_ENUM_TRAILING_PARAMS(N, a));
0025         }
0026 
0027         #ifdef BOOST_PROTO_DEFINE_TERMINAL
0028         /// \overload
0029         ///
0030         template<BOOST_PP_ENUM_PARAMS(N, typename A)>
0031         BOOST_FORCEINLINE
0032         typename result_of::BOOST_PP_CAT(funop, N)<
0033             expr
0034           , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
0035         >::type const
0036         operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a))
0037         {
0038             return result_of::BOOST_PP_CAT(funop, N)<
0039                 expr
0040               , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
0041             >::call(*this BOOST_PP_ENUM_TRAILING_PARAMS(N, a));
0042         }
0043         #endif
0044 
0045 #undef N