mirror of
https://github.com/boostorg/algorithm.git
synced 2025-07-01 23:11:00 +02:00
merge new MPL version from 'mplbook' branch
[SVN r24874]
This commit is contained in:
@ -25,7 +25,7 @@
|
|||||||
#include <boost/algorithm/string/config.hpp>
|
#include <boost/algorithm/string/config.hpp>
|
||||||
#include <boost/type_traits/is_array.hpp>
|
#include <boost/type_traits/is_array.hpp>
|
||||||
#include <boost/type_traits/is_pointer.hpp>
|
#include <boost/type_traits/is_pointer.hpp>
|
||||||
#include <boost/mpl/apply_if.hpp>
|
#include <boost/mpl/eval_if.hpp>
|
||||||
|
|
||||||
// Implementation
|
// Implementation
|
||||||
#include <boost/algorithm/string/detail/collection_traits.hpp>
|
#include <boost/algorithm/string/detail/collection_traits.hpp>
|
||||||
@ -74,13 +74,13 @@ namespace boost {
|
|||||||
struct collection_traits
|
struct collection_traits
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef BOOST_STRING_TYPENAME ::boost::mpl::apply_if<
|
typedef BOOST_STRING_TYPENAME ::boost::mpl::eval_if<
|
||||||
::boost::algorithm::detail::is_pair<T>,
|
::boost::algorithm::detail::is_pair<T>,
|
||||||
detail::pair_container_traits_selector<T>,
|
detail::pair_container_traits_selector<T>,
|
||||||
BOOST_STRING_TYPENAME ::boost::mpl::apply_if<
|
BOOST_STRING_TYPENAME ::boost::mpl::eval_if<
|
||||||
::boost::is_array<T>,
|
::boost::is_array<T>,
|
||||||
detail::array_container_traits_selector<T>,
|
detail::array_container_traits_selector<T>,
|
||||||
BOOST_STRING_TYPENAME ::boost::mpl::apply_if<
|
BOOST_STRING_TYPENAME ::boost::mpl::eval_if<
|
||||||
::boost::is_pointer<T>,
|
::boost::is_pointer<T>,
|
||||||
detail::pointer_container_traits_selector<T>,
|
detail::pointer_container_traits_selector<T>,
|
||||||
detail::default_container_traits_selector<T>
|
detail::default_container_traits_selector<T>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include <boost/type_traits/is_convertible.hpp>
|
#include <boost/type_traits/is_convertible.hpp>
|
||||||
#include <boost/type_traits/remove_pointer.hpp>
|
#include <boost/type_traits/remove_pointer.hpp>
|
||||||
#include <boost/type_traits/remove_cv.hpp>
|
#include <boost/type_traits/remove_cv.hpp>
|
||||||
#include <boost/mpl/apply_if.hpp>
|
#include <boost/mpl/eval_if.hpp>
|
||||||
#include <boost/mpl/identity.hpp>
|
#include <boost/mpl/identity.hpp>
|
||||||
#include <boost/mpl/vector.hpp>
|
#include <boost/mpl/vector.hpp>
|
||||||
#include <boost/mpl/fold.hpp>
|
#include <boost/mpl/fold.hpp>
|
||||||
@ -241,13 +241,13 @@ namespace boost {
|
|||||||
struct array_traits_cv_selector
|
struct array_traits_cv_selector
|
||||||
{
|
{
|
||||||
typedef BOOST_STRING_TYPENAME
|
typedef BOOST_STRING_TYPENAME
|
||||||
::boost::mpl::apply_if<
|
::boost::mpl::eval_if<
|
||||||
::boost::is_convertible<T,BaseT*>,
|
::boost::is_convertible<T,BaseT*>,
|
||||||
array_traits_impl_selector<T,BaseT>,
|
array_traits_impl_selector<T,BaseT>,
|
||||||
::boost::mpl::apply_if<
|
::boost::mpl::eval_if<
|
||||||
::boost::is_convertible<T,const BaseT*>,
|
::boost::is_convertible<T,const BaseT*>,
|
||||||
array_traits_impl_selector<T, const BaseT>,
|
array_traits_impl_selector<T, const BaseT>,
|
||||||
::boost::mpl::apply_if<
|
::boost::mpl::eval_if<
|
||||||
::boost::is_convertible<T, volatile BaseT*>,
|
::boost::is_convertible<T, volatile BaseT*>,
|
||||||
array_traits_impl_selector<T, volatile BaseT>,
|
array_traits_impl_selector<T, volatile BaseT>,
|
||||||
array_traits_impl_selector<T, const volatile BaseT>
|
array_traits_impl_selector<T, const volatile BaseT>
|
||||||
@ -263,7 +263,7 @@ namespace boost {
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef BOOST_STRING_TYPENAME
|
typedef BOOST_STRING_TYPENAME
|
||||||
::boost::mpl::apply_if<
|
::boost::mpl::eval_if<
|
||||||
::boost::is_convertible<T,const volatile T2*>,
|
::boost::is_convertible<T,const volatile T2*>,
|
||||||
array_traits_cv_selector<T,T2>,
|
array_traits_cv_selector<T,T2>,
|
||||||
::boost::mpl::identity<T1> >::type type;
|
::boost::mpl::identity<T1> >::type type;
|
||||||
|
Reference in New Issue
Block a user