/*-----------------------------------------------------------------------------+ 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_TYPE_TRAITS_ON_ABSORBTION_HPP_JOFA_100915 #define BOOST_ICL_TYPE_TRAITS_ON_ABSORBTION_HPP_JOFA_100915 namespace boost{ namespace icl { template struct on_absorbtion; template struct on_absorbtion { typedef on_absorbtion type; typedef typename Type::codomain_type codomain_type; static bool is_absorbable(const codomain_type&){ return false; } }; template struct on_absorbtion { typedef on_absorbtion type; typedef typename Type::codomain_type codomain_type; typedef typename Type::codomain_combine codomain_combine; static bool is_absorbable(const codomain_type& co_value) { return co_value == Combiner::identity_element(); } }; }} // namespace boost icl #endif