forked from boostorg/fusion
removes outdated workaround for broken mpl::is_sequence
[SVN r36561]
This commit is contained in:
@ -6,47 +6,21 @@
|
|||||||
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
http://www.boost.org/LICENSE_1_0.txt)
|
http://www.boost.org/LICENSE_1_0.txt)
|
||||||
==============================================================================*/
|
==============================================================================*/
|
||||||
#if !defined(FUSION_DETAIL_IS_MPL_SEQUENCE_15122005_2137)
|
#if !defined(FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105)
|
||||||
#define FUSION_DETAIL_IS_MPL_SEQUENCE_15122005_2137
|
#define FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105
|
||||||
|
|
||||||
#include <boost/fusion/support/sequence_base.hpp>
|
#include <boost/fusion/support/sequence_base.hpp>
|
||||||
|
#include <boost/type_traits/is_base_of.hpp>
|
||||||
#include <boost/mpl/is_sequence.hpp>
|
#include <boost/mpl/is_sequence.hpp>
|
||||||
#include <boost/mpl/and.hpp>
|
#include <boost/mpl/and.hpp>
|
||||||
#include <boost/mpl/not.hpp>
|
#include <boost/mpl/not.hpp>
|
||||||
#include <boost/mpl/bool.hpp>
|
|
||||||
#include <boost/mpl/int_fwd.hpp>
|
|
||||||
#include <boost/mpl/long_fwd.hpp>
|
|
||||||
#include <boost/mpl/size_t_fwd.hpp>
|
|
||||||
#include <boost/mpl/integral_c_fwd.hpp>
|
|
||||||
#include <boost/type_traits/is_base_of.hpp>
|
|
||||||
#include <boost/type_traits/is_convertible.hpp>
|
|
||||||
#include <cstddef>
|
|
||||||
|
|
||||||
namespace boost { namespace fusion { namespace detail
|
namespace boost { namespace fusion { namespace detail
|
||||||
{
|
{
|
||||||
struct mpl_int_detect
|
|
||||||
{
|
|
||||||
template <int N>
|
|
||||||
mpl_int_detect(mpl::int_<N>) {}
|
|
||||||
|
|
||||||
template <bool B>
|
|
||||||
mpl_int_detect(mpl::bool_<B>) {}
|
|
||||||
|
|
||||||
template <typename T, T N>
|
|
||||||
mpl_int_detect(mpl::integral_c<T, N>) {}
|
|
||||||
|
|
||||||
template <long N>
|
|
||||||
mpl_int_detect(mpl::long_<N>) {}
|
|
||||||
|
|
||||||
template <std::size_t N>
|
|
||||||
mpl_int_detect(mpl::size_t<N>) {}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_mpl_sequence
|
struct is_mpl_sequence
|
||||||
: mpl::and_<
|
: mpl::and_<
|
||||||
mpl::not_<is_convertible<T, mpl_int_detect> >
|
mpl::not_<is_base_of<sequence_root, T> >
|
||||||
, mpl::not_<is_base_of<sequence_root, T> >
|
|
||||||
, mpl::is_sequence<T> >
|
, mpl::is_sequence<T> >
|
||||||
{};
|
{};
|
||||||
}}}
|
}}}
|
||||||
|
Reference in New Issue
Block a user