46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// 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
 |