/*-----------------------------------------------------------------------------+ Copyright (c) 2010-2010: Joachim Faulhaber +------------------------------------------------------------------------------+ Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENCE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +-----------------------------------------------------------------------------*/ #ifndef BOOST_ICL_PREDICATES_SUB_SUPER_SET_HPP_JOFA_101102 #define BOOST_ICL_PREDICATES_SUB_SUPER_SET_HPP_JOFA_101102 #include #include namespace boost{namespace icl { /// Functor class template contained_in implements the subset relation. template struct sub_super_set : public relation { /// Apply the subset relation. /** contained_in(sub, super) is true if sub is contained in super */ bool operator()(const Type& sub, const Type& super)const { return contains(super, sub); } }; template<> inline std::string unary_template_to_string::apply() { return "C="; } /// Functor class template contains implements the superset relation. template struct super_sub_set : public relation { /// Apply the superset relation. /** contains(super, sub) is true if super containes sub */ bool operator()(const Type& super, const Type& sub)const { return contains(super, sub); } }; template<> inline std::string unary_template_to_string::apply() { return "D="; } }} // namespace icl boost #endif