| // |
| // Boost.Pointer Container |
| // |
| // Copyright Thorsten Ottosen 2008. Use, modification and |
| // distribution is subject to the Boost Software License, Version |
| // 1.0. (See accompanying file LICENSE_1_0.txt or copy at |
| // http://www.boost.org/LICENSE_1_0.txt) |
| // |
| // For more information, see http://www.boost.org/libs/ptr_container/ |
| // |
| |
| #ifndef BOOST_PTR_CONTAINER_DETAIL_META_FUNCTIONS |
| #define BOOST_PTR_CONTAINER_DETAIL_META_FUNCTIONS |
| |
| #include <boost/mpl/identity.hpp> |
| #include <boost/mpl/eval_if.hpp> |
| |
| namespace boost |
| { |
| namespace ptr_container_detail |
| { |
| template< class T > |
| struct select_value_compare |
| { |
| typedef typename T::value_compare type; |
| }; |
| |
| template< class T > |
| struct select_key_compare |
| { |
| typedef typename T::key_compare type; |
| }; |
| |
| template< class T > |
| struct select_hasher |
| { |
| typedef typename T::hasher type; |
| }; |
| |
| template< class T > |
| struct select_key_equal |
| { |
| typedef typename T::key_equal type; |
| }; |
| |
| template< class T > |
| struct select_iterator |
| { |
| typedef typename T::iterator type; |
| }; |
| |
| template< class T > |
| struct select_local_iterator |
| { |
| typedef typename T::local_iterator type; |
| }; |
| |
| template< class T > |
| struct select_const_local_iterator |
| { |
| typedef typename T::const_local_iterator type; |
| }; |
| } |
| } |
| |
| #endif |