From 37f57fbf7f04d1989615663e73eae5914dd3fa9c Mon Sep 17 00:00:00 2001 From: Hartmut Kaiser Date: Fri, 25 Sep 2009 13:57:30 +0000 Subject: [PATCH] Fusion: resolved const correctness issue [SVN r56381] --- include/boost/fusion/view/nview/detail/begin_impl.hpp | 7 +++---- include/boost/fusion/view/nview/detail/deref_impl.hpp | 5 +++-- include/boost/fusion/view/nview/detail/end_impl.hpp | 7 +++---- include/boost/fusion/view/nview/detail/nview_impl.hpp | 3 ++- include/boost/fusion/view/nview/detail/value_of_impl.hpp | 3 ++- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/include/boost/fusion/view/nview/detail/begin_impl.hpp b/include/boost/fusion/view/nview/detail/begin_impl.hpp index 96afe5a8..8ba59fc5 100644 --- a/include/boost/fusion/view/nview/detail/begin_impl.hpp +++ b/include/boost/fusion/view/nview/detail/begin_impl.hpp @@ -29,15 +29,14 @@ namespace boost { namespace fusion template struct apply { - typedef typename Sequence::sequence_type sequence_type; typedef typename Sequence::index_type index_type; - typedef nview_iterator::type> type; - static type call(Sequence& v) + static type call(Sequence& s) { - return type(v.seq); + return type(s); } }; }; diff --git a/include/boost/fusion/view/nview/detail/deref_impl.hpp b/include/boost/fusion/view/nview/detail/deref_impl.hpp index 329e0842..075f0b0f 100644 --- a/include/boost/fusion/view/nview/detail/deref_impl.hpp +++ b/include/boost/fusion/view/nview/detail/deref_impl.hpp @@ -30,11 +30,12 @@ namespace boost { namespace fusion typedef typename Iterator::sequence_type sequence_type; typedef typename result_of::deref::type index; - typedef typename result_of::at::type type; + typedef typename result_of::at< + typename sequence_type::sequence_type, index>::type type; static type call(Iterator const& i) { - return at(i.seq); + return at(i.seq.seq); } }; }; diff --git a/include/boost/fusion/view/nview/detail/end_impl.hpp b/include/boost/fusion/view/nview/detail/end_impl.hpp index d7e87391..7897748b 100644 --- a/include/boost/fusion/view/nview/detail/end_impl.hpp +++ b/include/boost/fusion/view/nview/detail/end_impl.hpp @@ -30,15 +30,14 @@ namespace boost { namespace fusion template struct apply { - typedef typename Sequence::sequence_type sequence_type; typedef typename Sequence::index_type index_type; - typedef nview_iterator::type> type; - static type call(Sequence& v) + static type call(Sequence& s) { - return type(v.seq); + return type(s); } }; }; diff --git a/include/boost/fusion/view/nview/detail/nview_impl.hpp b/include/boost/fusion/view/nview/detail/nview_impl.hpp index 44263df2..c0179597 100644 --- a/include/boost/fusion/view/nview/detail/nview_impl.hpp +++ b/include/boost/fusion/view/nview/detail/nview_impl.hpp @@ -10,6 +10,7 @@ #if !defined(BOOST_FUSION_NVIEW_IMPL_SEP_23_2009_1017PM) #define BOOST_FUSION_NVIEW_IMPL_SEP_23_2009_1017PM +#include #include #include #include @@ -28,7 +29,7 @@ namespace boost { namespace fusion { namespace result_of { template + , BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(FUSION_MAX_VECTOR_SIZE, int I, INT_MAX)> struct as_nview { typedef mpl::vector_c< diff --git a/include/boost/fusion/view/nview/detail/value_of_impl.hpp b/include/boost/fusion/view/nview/detail/value_of_impl.hpp index 7af0b1fd..5b0a85ba 100644 --- a/include/boost/fusion/view/nview/detail/value_of_impl.hpp +++ b/include/boost/fusion/view/nview/detail/value_of_impl.hpp @@ -33,7 +33,8 @@ namespace boost { namespace fusion typedef typename Iterator::sequence_type sequence_type; typedef typename result_of::deref::type index; - typedef typename result_of::at::type type; + typedef typename result_of::at< + typename sequence_type::sequence_type, index>::type type; }; }; }