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
 | 
