104 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			104 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | 
 | ||
|  | // (C) Copyright Tobias Schwinger | ||
|  | // | ||
|  | // Use modification and distribution are subject to the boost Software License, | ||
|  | // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). | ||
|  | 
 | ||
|  | //------------------------------------------------------------------------------ | ||
|  | 
 | ||
|  | // no include guards, this file is guarded externally | ||
|  | 
 | ||
|  | #ifdef __WAVE__ | ||
|  | // this file has been generated from the master.hpp file in the same directory | ||
|  | #   pragma wave option(preserve: 0) | ||
|  | #endif | ||
|  | 
 | ||
|  | #if !defined(BOOST_PP_VALUE) | ||
|  | #   include <boost/preprocessor/slot/slot.hpp> | ||
|  | #   include <boost/preprocessor/iteration/self.hpp> | ||
|  | 
 | ||
|  | #   include <boost/function_types/detail/encoding/def.hpp> | ||
|  | #   include <boost/function_types/detail/encoding/aliases_def.hpp> | ||
|  | 
 | ||
|  | namespace boost { namespace function_types { | ||
|  | 
 | ||
|  | namespace detail | ||
|  | { | ||
|  |   template<class Tag, class RefTag> struct selector_bits | ||
|  |   { | ||
|  | #   define  BOOST_PP_VALUE non_member|member|non_variadic|variadic | ||
|  | #   include BOOST_PP_ASSIGN_SLOT(1) | ||
|  | 
 | ||
|  |     BOOST_STATIC_CONSTANT(bits_t, value = ( | ||
|  |         (::boost::function_types::detail::bits<Tag>::value & BOOST_FT_default_cc)  | ||
|  |       | (::boost::function_types::detail::bits<RefTag>::value & BOOST_PP_SLOT(1)) | ||
|  |     )); | ||
|  |   }; | ||
|  | 
 | ||
|  |   template<bits_t SelectorBits> struct default_cc_tag;  | ||
|  |    | ||
|  |   template<class Tag, class RefTag> struct retag_default_cc | ||
|  |     : detail::compound_tag | ||
|  |       < Tag, detail::default_cc_tag<  | ||
|  |           ::boost::function_types::detail::selector_bits<Tag,RefTag>::value > > | ||
|  |   { }; | ||
|  | 
 | ||
|  |   template<bits_t SelectorBits> struct default_cc_tag | ||
|  |   { | ||
|  |     typedef null_tag::bits bits; | ||
|  |     typedef null_tag::mask mask; | ||
|  |   }; | ||
|  | 
 | ||
|  |   class test_class; | ||
|  |   typedef constant<BOOST_FT_cc_mask> cc_mask_constant; | ||
|  | 
 | ||
|  | #   define BOOST_FT_self \ | ||
|  |       <boost/function_types/detail/pp_retag_default_cc/master.hpp> | ||
|  | 
 | ||
|  | #   define  default_cc_ BOOST_FT_default_cc | ||
|  | 
 | ||
|  | #   define  BOOST_PP_VALUE default_cc_|non_member|non_variadic | ||
|  | #   define  BOOST_FT_tester void (*tester)() | ||
|  | #   define  BOOST_PP_INDIRECT_SELF BOOST_FT_self | ||
|  | #   include BOOST_PP_INCLUDE_SELF() | ||
|  | 
 | ||
|  | #   define  BOOST_PP_VALUE default_cc_|non_member|variadic | ||
|  | #   define  BOOST_FT_tester void (*tester)(...) | ||
|  | #   define  BOOST_PP_INDIRECT_SELF BOOST_FT_self | ||
|  | #   include BOOST_PP_INCLUDE_SELF() | ||
|  | 
 | ||
|  | #   define  BOOST_PP_VALUE default_cc_|member|non_variadic | ||
|  | #   define  BOOST_FT_tester void (test_class::*tester)() | ||
|  | #   define  BOOST_PP_INDIRECT_SELF BOOST_FT_self | ||
|  | #   include BOOST_PP_INCLUDE_SELF() | ||
|  | 
 | ||
|  | #   define  BOOST_PP_VALUE default_cc_|member|variadic | ||
|  | #   define  BOOST_FT_tester void (test_class::*tester)(...) | ||
|  | #   define  BOOST_PP_INDIRECT_SELF BOOST_FT_self | ||
|  | #   include BOOST_PP_INCLUDE_SELF() | ||
|  | 
 | ||
|  | #   undef   default_cc_ | ||
|  | 
 | ||
|  | #   undef BOOST_FT_self | ||
|  | 
 | ||
|  | } } } // namespace ::boost::function_types::detail | ||
|  | 
 | ||
|  | #   include <boost/function_types/detail/encoding/aliases_undef.hpp> | ||
|  | #   include <boost/function_types/detail/encoding/undef.hpp> | ||
|  | 
 | ||
|  | #else // if defined(BOOST_PP_VALUE) | ||
|  | 
 | ||
|  | #   include BOOST_PP_ASSIGN_SLOT(1) | ||
|  | 
 | ||
|  |   template<> struct default_cc_tag<BOOST_PP_SLOT(1)>  | ||
|  |   { | ||
|  |     typedef BOOST_FT_tester; | ||
|  |     typedef mpl::bitand_<components<tester>::bits,cc_mask_constant> bits; | ||
|  |     typedef cc_mask_constant mask; | ||
|  |   }; | ||
|  | 
 | ||
|  | #   undef BOOST_FT_tester | ||
|  | 
 | ||
|  | #endif | ||
|  | 
 |