diff options
Diffstat (limited to 'src/third_party/boost-1.56.0/boost/function_types/property_tags.hpp')
-rw-r--r-- | src/third_party/boost-1.56.0/boost/function_types/property_tags.hpp | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/src/third_party/boost-1.56.0/boost/function_types/property_tags.hpp b/src/third_party/boost-1.56.0/boost/function_types/property_tags.hpp deleted file mode 100644 index bbc64d53a36..00000000000 --- a/src/third_party/boost-1.56.0/boost/function_types/property_tags.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// (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). - -//------------------------------------------------------------------------------ - -#ifndef BOOST_FT_DETAIL_TAGS_HPP_INCLUDED -#define BOOST_FT_DETAIL_TAGS_HPP_INCLUDED - -#include <cstddef> - -#include <boost/type_traits/integral_constant.hpp> -#include <boost/mpl/bitxor.hpp> - - -namespace boost { namespace function_types { - -namespace detail -{ - typedef long bits_t; - - template<bits_t Value> struct constant - : boost::integral_constant<bits_t,Value> - { }; - - template<bits_t Bits, bits_t Mask> struct property_tag - { - typedef constant<Bits> bits; - typedef constant<Mask> mask; - }; - - template<typename T> struct bits : T::bits { }; - template<typename T> struct mask : T::mask { }; - - // forward declaration, defined in pp_tags - template<bits_t Bits, bits_t CCID> struct encode_bits_impl; - - // forward declaration, defined in pp_tags - template<bits_t LHS_bits, bits_t LHS_mask, - bits_t RHS_bits, bits_t RHS_mask> - struct tag_ice; - - // forward declaration, defined in retag_default_cc - template<class Tag, class RegTag = Tag> struct retag_default_cc; - - template<bits_t Bits, bits_t CCID> struct encode_bits - : constant< - ::boost::function_types::detail::encode_bits_impl<Bits,CCID>::value - > - { }; - - template<class LHS, class RHS> struct compound_tag - { - typedef constant< - ::boost::function_types::detail::tag_ice - < ::boost::function_types::detail::bits<LHS>::value - , ::boost::function_types::detail::mask<LHS>::value - , ::boost::function_types::detail::bits<RHS>::value - , ::boost::function_types::detail::mask<RHS>::value - >::combined_bits - > bits; - - typedef constant< - ::boost::function_types::detail::tag_ice - < ::boost::function_types::detail::bits<LHS>::value - , ::boost::function_types::detail::mask<LHS>::value - , ::boost::function_types::detail::bits<RHS>::value - , ::boost::function_types::detail::mask<RHS>::value - >::combined_mask - > mask; - }; - - template <class Base, class PropOld, class PropNew> - struct changed_tag - : Base - { - typedef mpl::bitxor_ - <typename Base::bits, typename PropOld::bits, typename PropNew::bits> - bits; - }; - - template<class Tag, class QueryTag> struct represents_impl - : boost::integral_constant<bool, - ::boost::function_types::detail::tag_ice - < ::boost::function_types::detail::bits<Tag>::value - , ::boost::function_types::detail::mask<Tag>::value - , ::boost::function_types::detail::bits<QueryTag>::value - , ::boost::function_types::detail::mask<QueryTag>::value - >::match - > - { }; - -} // namespace detail - -typedef detail::property_tag<0,0> null_tag; - -template<class Tag1, class Tag2, class Tag3 = null_tag, class Tag4 = null_tag> -struct tag - : detail::compound_tag< detail::compound_tag<Tag1,Tag2>, - detail::compound_tag<Tag3,Tag4> > -{ }; - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template<class Tag1, class Tag2, class Tag3> struct tag<Tag1,Tag2,Tag3,null_tag> - : detail::compound_tag<detail::compound_tag<Tag1,Tag2>,Tag3> -{ }; -template<class Tag1, class Tag2> struct tag<Tag1,Tag2,null_tag,null_tag> - : detail::compound_tag<Tag1,Tag2> -{ }; -template<class Tag1> struct tag<Tag1,null_tag,null_tag,null_tag> - : Tag1 -{ }; -#endif - - -template<class Tag, class QueryTag> struct represents - : detail::represents_impl<Tag, detail::retag_default_cc<QueryTag,Tag> > -{ }; - - -template<class Tag, class QueryTag> struct extract -{ - typedef detail::constant< - ::boost::function_types::detail::tag_ice - < ::boost::function_types::detail::bits<Tag>::value - , ::boost::function_types::detail::mask<Tag>::value - , ::boost::function_types::detail::bits<QueryTag>::value - , ::boost::function_types::detail::mask<QueryTag>::value - >::extracted_bits - > bits; - - typedef detail::constant< - ::boost::function_types::detail::mask<QueryTag>::value - > mask; -}; - -} } // namespace ::boost::function_types - -#include <boost/function_types/detail/pp_tags/preprocessed.hpp> - -namespace boost { namespace function_types { -#define BOOST_FT_cc_file <boost/function_types/detail/pp_tags/cc_tag.hpp> -#include <boost/function_types/detail/pp_loop.hpp> -} } // namespace boost::function_types - -#endif - |