allow boolean traits implementations to use std::true_type and std::false_type

[SVN r79131]
This commit is contained in:
Eric Niebler
2012-06-27 04:27:50 +00:00
parent 191a3d75ed
commit 85583b5ea9
3 changed files with 15 additions and 7 deletions

View File

@ -7,6 +7,7 @@
#if !defined(FUSION_IS_SEGMENTED_03202006_0015) #if !defined(FUSION_IS_SEGMENTED_03202006_0015)
#define FUSION_IS_SEGMENTED_03202006_0015 #define FUSION_IS_SEGMENTED_03202006_0015
#include <boost/mpl/bool.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
namespace boost { namespace fusion namespace boost { namespace fusion
@ -41,8 +42,10 @@ namespace boost { namespace fusion
{ {
template <typename Sequence> template <typename Sequence>
struct is_segmented struct is_segmented
: extension::is_segmented_impl<typename traits::tag_of<Sequence>::type>:: : mpl::bool_<
template apply<Sequence> (bool)extension::is_segmented_impl<typename traits::tag_of<Sequence>::type>::
template apply<Sequence>::type::value
>
{ {
}; };
} }

View File

@ -59,9 +59,11 @@ namespace boost { namespace fusion
{ {
template <typename T> template <typename T>
struct is_sequence struct is_sequence
: extension::is_sequence_impl< : mpl::bool_<
(bool)extension::is_sequence_impl<
typename fusion::detail::tag_of<T>::type typename fusion::detail::tag_of<T>::type
>::template apply<T> >::template apply<T>::type::value
>
{}; {};
template <typename Sequence, typename Enable = void> template <typename Sequence, typename Enable = void>

View File

@ -7,6 +7,7 @@
#if !defined(FUSION_IS_VIEW_03202006_0015) #if !defined(FUSION_IS_VIEW_03202006_0015)
#define FUSION_IS_VIEW_03202006_0015 #define FUSION_IS_VIEW_03202006_0015
#include <boost/mpl/bool.hpp>
#include <boost/fusion/support/detail/is_view.hpp> #include <boost/fusion/support/detail/is_view.hpp>
#include <boost/fusion/support/tag_of.hpp> #include <boost/fusion/support/tag_of.hpp>
@ -54,8 +55,10 @@ namespace boost { namespace fusion
{ {
template <typename T> template <typename T>
struct is_view : struct is_view :
extension::is_view_impl<typename fusion::detail::tag_of<T>::type>:: mpl::bool_<
template apply<T>::type (bool)extension::is_view_impl<typename fusion::detail::tag_of<T>::type>::
template apply<T>::type::value
>
{}; {};
} }
}} }}