61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*==============================================================================
 | |
|     Copyright (c) 2005-2010 Joel de Guzman
 | |
| 
 | |
|     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)
 | |
| ==============================================================================*/
 | |
| #ifndef BOOST_PHOENIX_CORE_NOTHING_HPP
 | |
| #define BOOST_PHOENIX_CORE_NOTHING_HPP
 | |
| 
 | |
| #include <boost/phoenix/core/limits.hpp>
 | |
| #include <boost/mpl/void.hpp>
 | |
| #include <boost/phoenix/core/actor.hpp>
 | |
| #include <boost/phoenix/core/call.hpp>
 | |
| #include <boost/phoenix/core/expression.hpp>
 | |
| #include <boost/phoenix/core/value.hpp>
 | |
| 
 | |
| namespace boost { namespace phoenix
 | |
| {
 | |
|     /////////////////////////////////////////////////////////////////////////////
 | |
|     //
 | |
|     //  null_actor
 | |
|     //
 | |
|     //      An actor that does nothing (a "bum", if you will :-).
 | |
|     //
 | |
|     /////////////////////////////////////////////////////////////////////////////
 | |
|     
 | |
|     namespace detail
 | |
|     {
 | |
|         struct nothing {};
 | |
|     }
 | |
|     
 | |
|     namespace expression
 | |
|     {
 | |
|         struct null
 | |
|             : expression::value<detail::nothing>
 | |
|         {};
 | |
|     }
 | |
|     
 | |
|     template<typename Dummy>
 | |
|     struct is_custom_terminal<detail::nothing, Dummy>
 | |
|       : mpl::true_
 | |
|     {};
 | |
| 
 | |
|     template<typename Dummy>
 | |
|     struct custom_terminal<detail::nothing, Dummy>
 | |
|     {
 | |
|         typedef void result_type;
 | |
|         template <typename Context>
 | |
|         void operator()(detail::nothing, Context &) const
 | |
|         {
 | |
|         }
 | |
|     };
 | |
| 
 | |
|     typedef expression::null::type nothing_type BOOST_ATTRIBUTE_UNUSED;
 | |
| #ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS
 | |
|     nothing_type const BOOST_ATTRIBUTE_UNUSED nothing = {{{}}};
 | |
| #endif
 | |
| }}
 | |
| 
 | |
| #endif
 | 
