Re: [Boost-bugs] [Boost C++ Libraries] #7513: fusion::convert() tries to call convert_impl::call but there isn't

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #7513: fusion::convert() tries to call convert_impl::call but there isn't
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-10-17 06:40:44


#7513: fusion::convert() tries to call convert_impl::call but there isn't
-----------------------------------------------+----------------------------
  Reporter: Kohei Takahashi <flast@…> | Owner: djowel
      Type: Bugs | Status: new
 Milestone: To Be Determined | Component: fusion
   Version: Boost Development Trunk | Severity: Problem
Resolution: | Keywords: convert
-----------------------------------------------+----------------------------

Comment (by Kohei Takahashi <flast@…>):

 I tried with gcc 4.8,4.7,4.6 and clang 3.2.

 Simple testcase is here.
 {{{
 #include <boost/fusion/container/vector.hpp>
 #include <boost/fusion/container/list.hpp>
 #include <boost/fusion/sequence/convert.hpp>

 int main()
 {
     boost::fusion::vector<int> v(0);
     boost::fusion::convert<boost::fusion::cons_tag>(v);
 }
 }}}

 compiler outputs:
 {{{
 $ g++-4.8.0 -fmax-errors=1 hoge.cpp
 In file included from hoge.cpp:3:0:
 /usr/local/include/boost/fusion/sequence/convert.hpp: In instantiation of
 'typename boost::fusion::result_of::convert<Tag, Sequence>::type
 boost::fusion::convert(Sequence&) [with Tag = boost::fusion::cons_tag;
 Sequence = boost::fusion::vector<int>; typename
 boost::fusion::result_of::convert<Tag, Sequence>::type =
 boost::fusion::cons<int, boost::fusion::nil>]':
 hoge.cpp:8:54: required from here
 /usr/local/include/boost/fusion/sequence/convert.hpp:36:29: error: 'call'
 is not a member of 'gen {aka
 boost::fusion::extension::convert_impl<boost::fusion::cons_tag>}'
          return gen::call(seq);
                              ^
 compilation terminated due to -fmax-errors=1.

 $ g++-4.7.3 -fmax-errors=1 hoge.cpp
 In file included from hoge.cpp:3:0:
 /usr/local/include/boost/fusion/sequence/convert.hpp: In instantiation of
 'typename boost::fusion::result_of::convert<Tag, Sequence>::type
 boost::fusion::convert(Sequence&) [with Tag = boost::fusion::cons_tag;
 Sequence = boost::fusion::vector<int>; typename
 boost::fusion::result_of::convert<Tag, Sequence>::type =
 boost::fusion::cons<int, boost::fusion::nil>]':
 hoge.cpp:8:54: required from here
 /usr/local/include/boost/fusion/sequence/convert.hpp:36:29: error: 'call'
 is not a member of 'gen {aka
 boost::fusion::extension::convert_impl<boost::fusion::cons_tag>}'
 compilation terminated due to -fmax-errors=1.

 $ g++-4.6 -fmax-errors=1 hoge.cpp
 In file included from hoge.cpp:3:0:
 /usr/local/include/boost/fusion/sequence/convert.hpp: In function
 â€˜typename boost::fusion::result_of::convert<Tag, Sequence>::type
 boost::fusion::convert(Sequence&) [with Tag = boost::fusion::cons_tag,
 Sequence = boost::fusion::vector<int>, typename
 boost::fusion::result_of::convert<Tag, Sequence>::type =
 boost::fusion::cons<int, boost::fusion::nil>]’:
 hoge.cpp:8:54: instantiated from here
 /usr/local/include/boost/fusion/sequence/convert.hpp:36:29: error: ‘call’
 is not a member of ‘gen {aka
 boost::fusion::extension::convert_impl<boost::fusion::cons_tag>}’
 compilation terminated due to -fmax-errors=1.

 $ clang++ hoge.cpp
 In file included from hoge.cpp:3:
 /usr/local/include/boost/fusion/sequence/convert.hpp:36:21: error: no
 member named 'call' in
 'boost::fusion::extension::convert_impl<boost::fusion::cons_tag>'
         return gen::call(seq);
                ~~~~~^
 hoge.cpp:8:5: note: in instantiation of function template specialization
 'boost::fusion::convert<boost::fusion::cons_tag,
 boost::fusion::vector<int, boost::fusion::void_,
       boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
 boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
 boost::fusion::void_,
       boost::fusion::void_> >' requested here
     boost::fusion::convert<boost::fusion::cons_tag>(v);
     ^
 1 error generated.
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7513#comment:2>
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:10 UTC