[Boost-bugs] [Boost C++ Libraries] #6102: call to fusion::zip() does not compile with BOOST_RESULT_OF_USE_DECLTYPE

Subject: [Boost-bugs] [Boost C++ Libraries] #6102: call to fusion::zip() does not compile with BOOST_RESULT_OF_USE_DECLTYPE
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-11-07 20:43:01


#6102: call to fusion::zip() does not compile with BOOST_RESULT_OF_USE_DECLTYPE
------------------------------------+---------------------------------------
 Reporter: zeratul976@… | Owner: djowel
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: fusion
  Version: Boost 1.47.0 | Severity: Problem
 Keywords: C++11; C++0x; decltype |
------------------------------------+---------------------------------------
 The following trivial use of fusion::zip() fails to compile with
 -DBOOST_RESULT_OF_USE_DECLTYPE


 {{{
 #include <boost/fusion/algorithm/transformation/zip.hpp>
 #include <boost/fusion/container/vector.hpp>

 using namespace boost::fusion;

 int main()
 {
     vector<int,char> v1(1, 'a');
     vector<int,char> v2(2, 'b');
     zip(v1, v2);
 }
 }}}


 Errors:


 {{{
 In file included from
     boost/boost/preprocessor/iteration/detail/iter/forward1.hpp:57:0,
     from boost/boost/utility/result_of.hpp:95,
 from boost/boost/fusion/support/detail/segmented_fold_until_impl.hpp
     :13,
 from
     boost/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl
     .hpp:15,
 from boost/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp
     :10,
 from boost/boost/fusion/sequence/intrinsic/begin.hpp:17,
 from boost/boost/fusion/iterator/segmented_iterator.hpp:12,
 from boost/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp
     :11,
 from boost/boost/fusion/sequence/intrinsic/end.hpp:17,
 from boost/boost/fusion/mpl/back.hpp:11,
 from boost/boost/fusion/mpl.hpp:15,
 from boost/boost/fusion/view/detail/strictest_traversal.hpp:14,
 from boost/boost/fusion/view/zip_view/zip_view.hpp:14,
 from boost/boost/fusion/view/zip_view.hpp:11,
 from boost/boost/fusion/algorithm/transformation/zip.hpp:12,
 from test.cpp:1:
 boost/boost/utility/detail/result_of_iterate.hpp: In instantiation of
     'boost::detail::cpp0x_result_of_impl<
         boost::fusion::detail::strictest_traversal_impl(
             const boost::fusion::random_access_traversal_tag &
           , const boost::fusion::vector<int, char> &
         )
>':
 boost/boost/utility/detail/result_of_iterate.hpp:41:8: required
     from 'boost::result_of<
         boost::fusion::detail::strictest_traversal_impl(
             const boost::fusion::random_access_traversal_tag &
           , const boost::fusion::vector<int, char> &
         )
>'
 boost/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp:267:13:
     required from 'boost::fusion::detail::result_of_first_unrolledfold<
         const boost::fusion::random_access_traversal_tag &
       , boost::fusion::filter_iterator<
             boost::fusion::forward_traversal_tag
           , boost::fusion::vector_iterator<
                 boost::fusion::vector2<
                     const boost::fusion::vector<int, char> &
                   , const boost::fusion::vector<int, char> &
>, 0
>, boost::fusion::vector_iterator<
                 boost::fusion::vector2<
                     const boost::fusion::vector<int, char> &
                   , const boost::fusion::vector<int, char> &
>, 2
>, boost::mpl::not_<
                 boost::is_same<
                     mpl_::arg<-0x00000000000000001>
                   , const boost::fusion::unused_type &
>
>
>, boost::fusion::detail::strictest_traversal_impl, 2
>'
 boost/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp:279:13:
     required from 'boost::fusion::detail::fold_impl<
         2, const boost::fusion::random_access_traversal_tag &
       , boost::fusion::filter_view<
             boost::fusion::vector2<
                 const boost::fusion::vector<int, char> &
               , const boost::fusion::vector<int, char> &
>, boost::mpl::not_<
                 boost::is_same<
                     mpl_::arg<-0x00000000000000001>
                   , const boost::fusion::unused_type &
>
>
>, boost::fusion::detail::strictest_traversal_impl
>'
 boost/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp:306:16:
     required from 'boost::fusion::detail::result_of_fold<
         boost::fusion::filter_view<
             boost::fusion::vector2<
                 const boost::fusion::vector<int, char> &
               , const boost::fusion::vector<int, char> &
>, boost::mpl::not_<
                 boost::is_same<
                     mpl_::arg<-0x00000000000000001>
                   , const boost::fusion::unused_type &
>
>
>, boost::fusion::random_access_traversal_tag
       , boost::fusion::detail::strictest_traversal_impl, false
>'
 boost/boost/fusion/algorithm/iteration/detail/preprocessed/fold.hpp:320:16:
     required from 'boost::fusion::result_of::fold<
         boost::fusion::filter_view<
             boost::fusion::vector2<
                 const boost::fusion::vector<int, char> &
               , const boost::fusion::vector<int, char> &
>, boost::mpl::not_<
                 boost::is_same<
                     mpl_::arg<-0x00000000000000001>
                   , const boost::fusion::unused_type &
>
>
>, boost::fusion::random_access_traversal_tag
       , boost::fusion::detail::strictest_traversal_impl
>'
 boost/boost/fusion/view/detail/strictest_traversal.hpp:59:16:
     required from 'boost::fusion::detail::strictest_traversal<
         boost::fusion::filter_view<
             boost::fusion::vector2<
                 const boost::fusion::vector<int, char> &
               , const boost::fusion::vector<int, char> &
>, boost::mpl::not_<
                 boost::is_same<
                     mpl_::arg<-0x00000000000000001>
                   , const boost::fusion::unused_type &
>
>
>
>'
 boost/boost/fusion/view/zip_view/zip_view.hpp:99:76: required from
     'boost::fusion::zip_view<
         boost::fusion::vector2<
             const boost::fusion::vector<int, char> &
           , const boost::fusion::vector<int, char> &
>
>'
 test.cpp:10:15: required from here
 boost/boost/utility/detail/result_of_iterate.hpp:64:5: error: no
     match for call to '(boost::fusion::detail::strictest_traversal_impl) (
         const boost::fusion::random_access_traversal_tag &
       , const boost::fusion::vector<int, char> &
     )'
 In file included from
     boost/boost/preprocessor/iteration/detail/iter/forward1.hpp:52:0,
     from boost/boost/utility/result_of.hpp:95,
 from boost/boost/fusion/support/detail/segmented_fold_until_impl.hpp
     :13,
 from
     boost/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl
     .hpp:15,
 from boost/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp
     :10,
 from boost/boost/fusion/sequence/intrinsic/begin.hpp:17,
 from boost/boost/fusion/iterator/segmented_iterator.hpp:12,
 from boost/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp
     :11,
 from boost/boost/fusion/sequence/intrinsic/end.hpp:17,
 from boost/boost/fusion/mpl/back.hpp:11,
 from boost/boost/fusion/mpl.hpp:15,
 from boost/boost/fusion/view/detail/strictest_traversal.hpp:14,
 from boost/boost/fusion/view/zip_view/zip_view.hpp:14,
 from boost/boost/fusion/view/zip_view.hpp:11,
 from boost/boost/fusion/algorithm/transformation/zip.hpp:12,
 from test.cpp:1:
 boost/boost/utility/detail/result_of_iterate.hpp: In instantiation of
     'boost::detail::cpp0x_result_of_impl<
         boost::fusion::detail::seq_ref_size(
             const boost::fusion::vector<int, char> &
         )
>':
 boost/boost/utility/detail/result_of_iterate.hpp:41:8: required
     from 'boost::result_of<
         boost::fusion::detail::seq_ref_size(
             const boost::fusion::vector<int, char> &
         )
>'
 boost/boost/fusion/view/transform_view/detail/apply_transform_result.hpp:28:20:
     required from 'boost::fusion::detail::apply_transform_result<
         boost::fusion::detail::seq_ref_size
>::apply<const boost::fusion::vector<int, char> &>'
 boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp:36:8: required
     from 'boost::mpl::apply_wrap1<
         boost::fusion::detail::apply_transform_result<
             boost::fusion::detail::seq_ref_size
>, const boost::fusion::vector<int, char> &
>'
 boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp:42:8: required from
     'boost::mpl::apply1<
         boost::fusion::detail::apply_transform_result<
             boost::fusion::detail::seq_ref_size
>, const boost::fusion::vector<int, char> &
>'
 boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp:59:8: required from
     'boost::mpl::apply<
         boost::fusion::detail::apply_transform_result<
             boost::fusion::detail::seq_ref_size
>, const boost::fusion::vector<int, char> &
>'
 boost/boost/fusion/view/transform_view/detail/deref_impl.hpp:37:79:
     required from 'boost::fusion::extension::deref_impl<
         boost::fusion::transform_view_iterator_tag
>::apply<
         boost::fusion::transform_view_iterator<
             boost::fusion::filter_iterator<
                 boost::fusion::forward_traversal_tag
               , boost::fusion::vector_iterator<
                     boost::fusion::vector2<
                         const boost::fusion::vector<int, char> &
                       , const boost::fusion::vector<int, char> &
>, 0
>, boost::fusion::vector_iterator<
                     boost::fusion::vector2<
                         const boost::fusion::vector<int, char> &
                       , const boost::fusion::vector<int, char> &
>, 2
>, boost::mpl::not_<
                     boost::is_same<
                         mpl_::arg<-0x00000000000000001>
                       , const boost::fusion::unused_type &
>
>
>, boost::fusion::detail::seq_ref_size
>
>'
 boost/boost/fusion/iterator/deref.hpp:50:16: required from 'boost
     ::fusion::result_of::deref<
         boost::fusion::transform_view_iterator<
             boost::fusion::filter_iterator<
                 boost::fusion::forward_traversal_tag
               , boost::fusion::vector_iterator<
                     boost::fusion::vector2<
                         const boost::fusion::vector<int, char> &
                       , const boost::fusion::vector<int, char> &
>, 0
>, boost::fusion::vector_iterator<
                     boost::fusion::vector2<
                         const boost::fusion::vector<int, char> &
                       , const boost::fusion::vector<int, char> &
>, 2
>, boost::mpl::not_<
                     boost::is_same<
                         mpl_::arg<-0x00000000000000001>
                       , const boost::fusion::unused_type &
>
>
>, boost::fusion::detail::seq_ref_size
>
>'
 boost/boost/fusion/sequence/intrinsic/front.hpp:22:16: required
     from 'boost::fusion::result_of::front<
         boost::fusion::transform_view<
             boost::fusion::filter_view<
                 boost::fusion::vector2<
                     const boost::fusion::vector<int, char> &
                   , const boost::fusion::vector<int, char> &
>, boost::mpl::not_<
                     boost::is_same<
                         mpl_::arg<-0x00000000000000001>
                       , const boost::fusion::unused_type &
>
>
>, boost::fusion::detail::seq_ref_size, boost::fusion::void_
>
>'
 boost/boost/fusion/view/zip_view/zip_view.hpp:87:117: required from
     'boost::fusion::detail::min_size<
         boost::fusion::filter_view<
             boost::fusion::vector2<
                 const boost::fusion::vector<int, char> &
               , const boost::fusion::vector<int, char> &
>, boost::mpl::not_<
                 boost::is_same<
                     mpl_::arg<-0x00000000000000001>
                   , const boost::fusion::unused_type &
>
>
>
>'
 boost/boost/fusion/view/zip_view/zip_view.hpp:104:65: required from
     'boost::fusion::zip_view<
         boost::fusion::vector2<
             const boost::fusion::vector<int, char> &
           , const boost::fusion::vector<int, char> &
>
>'
 test.cpp:10:15: required from here
 boost/boost/utility/detail/result_of_iterate.hpp:64:5: error: no
     match for call to '(boost::fusion::detail::seq_ref_size) (
         const boost::fusion::vector<int, char> &
     )'
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/6102>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:07 UTC