diff options
author | Kevin Smith <git@kismith.co.uk> | 2013-01-12 18:41:34 (GMT) |
---|---|---|
committer | Swift Review <review@swift.im> | 2013-01-13 10:36:26 (GMT) |
commit | f3bc816af1b0d61452de973963e453bf3b3f95a2 (patch) | |
tree | e895f8afa3580e6cff6f5ad2017d45bf147a17c2 /3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp | |
parent | 188fc285c6555eadd3c9d50ab8a94adcade78d89 (diff) | |
download | swift-f3bc816af1b0d61452de973963e453bf3b3f95a2.zip swift-f3bc816af1b0d61452de973963e453bf3b3f95a2.tar.bz2 |
Adding in the spirit Boost stuff
Change-Id: I4f127ce61667243b64081b0aa309028d5077045f
Diffstat (limited to '3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp b/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp new file mode 100644 index 0000000..865efce --- /dev/null +++ b/3rdParty/Boost/src/boost/function_types/detail/pp_retag_default_cc/master.hpp @@ -0,0 +1,103 @@ + +// (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 + |