update boost on linux
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
#include <boost/mpl/eval_if.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
#include <boost/type_traits/is_convertible.hpp>
|
||||
|
||||
namespace boost { namespace phoenix { namespace stl
|
||||
{
|
||||
@@ -110,8 +111,8 @@ namespace boost { namespace phoenix { namespace stl
|
||||
//
|
||||
// has_mapped_type<C>
|
||||
//
|
||||
// Given a container C, determine if it is a map or multimap
|
||||
// by checking if it has a member type named "mapped_type".
|
||||
// Given a container C, determine if it is a map, multimap, unordered_map,
|
||||
// or unordered_multimap by checking if it has a member type named "mapped_type".
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
namespace stl_impl
|
||||
@@ -133,6 +134,43 @@ namespace boost { namespace phoenix { namespace stl
|
||||
>
|
||||
{};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// has_key_type<C>
|
||||
//
|
||||
// Given a container C, determine if it is a Associative Container
|
||||
// by checking if it has a member type named "key_type".
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
namespace stl_impl
|
||||
{
|
||||
template <typename C>
|
||||
one has_key_type(typename C::key_type(*)());
|
||||
|
||||
template <typename C>
|
||||
two has_key_type(...);
|
||||
}
|
||||
|
||||
template <typename C>
|
||||
struct has_key_type
|
||||
: boost::mpl::bool_<
|
||||
sizeof(stl_impl::has_key_type<C>(0)) == sizeof(stl_impl::one)
|
||||
>
|
||||
{};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// is_key_type_of<C, Arg>
|
||||
//
|
||||
// Lazy evaluation friendly predicate.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
template <typename C, typename Arg>
|
||||
struct is_key_type_of
|
||||
: boost::is_convertible<Arg, typename key_type_of<C>::type>
|
||||
{};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// map_insert_returns_pair<C>
|
||||
|
||||
Reference in New Issue
Block a user