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