2013-02-10 13:52:01 +00:00
|
|
|
//
|
|
|
|
// 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
|