Index: boost/fusion/sequence/intrinsic/begin.hpp =================================================================== --- boost/fusion/sequence/intrinsic/begin.hpp (revision 67285) +++ boost/fusion/sequence/intrinsic/begin.hpp (working copy) @@ -8,6 +8,8 @@ #define FUSION_BEGIN_04052005_1132 #include +#include +#include namespace boost { namespace fusion { @@ -57,14 +59,22 @@ } template - inline typename result_of::begin::type const + inline typename + lazy_enable_if< + traits::is_sequence + , typename result_of::begin + >::type const begin(Sequence& seq) { return result_of::begin::call(seq); } template - inline typename result_of::begin::type const + inline typename + lazy_enable_if< + traits::is_sequence + , typename result_of::begin + >::type const begin(Sequence const& seq) { return result_of::begin::call(seq); Index: boost/fusion/sequence/intrinsic/end.hpp =================================================================== --- boost/fusion/sequence/intrinsic/end.hpp (revision 67285) +++ boost/fusion/sequence/intrinsic/end.hpp (working copy) @@ -8,6 +8,8 @@ #define FUSION_END_04052005_1141 #include +#include +#include namespace boost { namespace fusion { @@ -57,14 +59,22 @@ } template - inline typename result_of::end::type const + inline typename + lazy_enable_if< + traits::is_sequence + , typename result_of::end + >::type const end(Sequence& seq) { return result_of::end::call(seq); } template - inline typename result_of::end::type const + inline typename + lazy_enable_if< + traits::is_sequence + , typename result_of::end + >::type const end(Sequence const& seq) { return result_of::end::call(seq);