mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-30 04:27:30 +02:00
Fusion: mask fusion::begin/fusion::end with SFINAE, fixes #4028
[SVN r67352]
This commit is contained in:
@ -8,6 +8,8 @@
|
|||||||
#define FUSION_BEGIN_04052005_1132
|
#define FUSION_BEGIN_04052005_1132
|
||||||
|
|
||||||
#include <boost/fusion/support/tag_of.hpp>
|
#include <boost/fusion/support/tag_of.hpp>
|
||||||
|
#include <boost/fusion/support/is_sequence.hpp>
|
||||||
|
#include <boost/utility/enable_if.hpp>
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
namespace boost { namespace fusion
|
||||||
{
|
{
|
||||||
@ -57,14 +59,22 @@ namespace boost { namespace fusion
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename Sequence>
|
template <typename Sequence>
|
||||||
inline typename result_of::begin<Sequence>::type const
|
inline typename
|
||||||
|
lazy_enable_if<
|
||||||
|
traits::is_sequence<Sequence>
|
||||||
|
, result_of::begin<Sequence>
|
||||||
|
>::type const
|
||||||
begin(Sequence& seq)
|
begin(Sequence& seq)
|
||||||
{
|
{
|
||||||
return result_of::begin<Sequence>::call(seq);
|
return result_of::begin<Sequence>::call(seq);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Sequence>
|
template <typename Sequence>
|
||||||
inline typename result_of::begin<Sequence const>::type const
|
inline typename
|
||||||
|
lazy_enable_if<
|
||||||
|
traits::is_sequence<Sequence>
|
||||||
|
, result_of::begin<Sequence const>
|
||||||
|
>::type const
|
||||||
begin(Sequence const& seq)
|
begin(Sequence const& seq)
|
||||||
{
|
{
|
||||||
return result_of::begin<Sequence const>::call(seq);
|
return result_of::begin<Sequence const>::call(seq);
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#define FUSION_END_04052005_1141
|
#define FUSION_END_04052005_1141
|
||||||
|
|
||||||
#include <boost/fusion/support/tag_of.hpp>
|
#include <boost/fusion/support/tag_of.hpp>
|
||||||
|
#include <boost/fusion/support/is_sequence.hpp>
|
||||||
|
#include <boost/utility/enable_if.hpp>
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
namespace boost { namespace fusion
|
||||||
{
|
{
|
||||||
@ -57,14 +59,22 @@ namespace boost { namespace fusion
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename Sequence>
|
template <typename Sequence>
|
||||||
inline typename result_of::end<Sequence>::type const
|
inline typename
|
||||||
|
lazy_enable_if<
|
||||||
|
traits::is_sequence<Sequence>
|
||||||
|
, result_of::end<Sequence>
|
||||||
|
>::type const
|
||||||
end(Sequence& seq)
|
end(Sequence& seq)
|
||||||
{
|
{
|
||||||
return result_of::end<Sequence>::call(seq);
|
return result_of::end<Sequence>::call(seq);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Sequence>
|
template <typename Sequence>
|
||||||
inline typename result_of::end<Sequence const>::type const
|
inline typename
|
||||||
|
lazy_enable_if<
|
||||||
|
traits::is_sequence<Sequence>
|
||||||
|
, result_of::end<Sequence const>
|
||||||
|
>::type const
|
||||||
end(Sequence const& seq)
|
end(Sequence const& seq)
|
||||||
{
|
{
|
||||||
return result_of::end<Sequence const>::call(seq);
|
return result_of::end<Sequence const>::call(seq);
|
||||||
|
Reference in New Issue
Block a user