Chris@16: /*-----------------------------------------------------------------------------+ Chris@16: Copyright (c) 2010-2010: Joachim Faulhaber Chris@16: +------------------------------------------------------------------------------+ Chris@16: Distributed under the Boost Software License, Version 1.0. Chris@16: (See accompanying file LICENCE.txt or copy at Chris@16: http://www.boost.org/LICENSE_1_0.txt) Chris@16: +-----------------------------------------------------------------------------*/ Chris@16: #ifndef BOOST_ICL_CONCEPT_MAP_VALUE_HPP_JOFA_100924 Chris@16: #define BOOST_ICL_CONCEPT_MAP_VALUE_HPP_JOFA_100924 Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost{ namespace icl Chris@16: { Chris@16: Chris@16: //============================================================================== Chris@16: //= AlgoUnifiers Chris@16: //============================================================================== Chris@16: template Chris@16: inline typename enable_if, const typename Type::key_type>::type& Chris@16: key_value(Iterator it_) Chris@16: { Chris@16: return (*it_).first; Chris@16: } Chris@16: Chris@16: template Chris@16: inline typename enable_if, const typename Type::codomain_type>::type& Chris@16: co_value(Iterator it_) Chris@16: { Chris@16: return (*it_).second; Chris@16: } Chris@16: Chris@16: template Chris@16: inline typename enable_if, typename Type::value_type>::type Chris@16: make_value(const typename Type:: key_type& key_val, Chris@16: const typename Type::codomain_type& co_val) Chris@16: { Chris@16: return typename Type::value_type(key_val, co_val); Chris@16: } Chris@16: Chris@16: Chris@16: template Chris@16: class content_is_identity_element: public property Chris@16: { Chris@16: public: Chris@16: bool operator() (const Type& value_pair)const Chris@16: { Chris@16: return value_pair.second Chris@16: == identity_element::value(); Chris@16: } Chris@16: } ; Chris@16: Chris@16: Chris@16: Chris@16: }} // namespace boost icl Chris@16: Chris@16: #endif Chris@16: Chris@16: