Opened 7 years ago
Closed 7 years ago
#11877 closed Bugs (wontfix)
fusion at_c compile error on join of two vectors
Reported by: | anonymous | Owned by: | Joel de Guzman |
---|---|---|---|
Milestone: | To Be Determined | Component: | fusion |
Version: | Boost 1.60.0 | Severity: | Problem |
Keywords: | Cc: |
Description
using visual studio 2015.1 compile error:
1>------ Build started: Project: ConsoleApplication1, Configuration: Debug Win32 ------ 1> main.cpp 1>e:\boost_1_60_0\include\boost\fusion\sequence\intrinsic\at.hpp(75): error C2504: 'boost::fusion::extension::at_impl<Tag>::apply<Sequence,N>': base class undefined 1> with 1> [ 1> Tag=boost::fusion::joint_view_tag 1> ] 1> and 1> [ 1> Sequence=const boost::fusion::joint_view<const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>, 1> N=boost::mpl::int_<1> 1> ] 1> e:\boost_1_60_0\include\boost\fusion\sequence\intrinsic\at.hpp(83): note: see reference to class template instantiation 'boost::fusion::detail::at_impl<Sequence,N,boost::fusion::joint_view_tag>' being compiled 1> with 1> [ 1> Sequence=const boost::fusion::joint_view<const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>, 1> N=boost::mpl::int_<1> 1> ] 1> e:\boost_1_60_0\include\boost\fusion\sequence\intrinsic\at.hpp(88): note: see reference to class template instantiation 'boost::fusion::result_of::at<Sequence,boost::mpl::int_<1>>' being compiled 1> with 1> [ 1> Sequence=const boost::fusion::joint_view<const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>> 1> ] 1> e:\gitlab\vs\consoleapplication1\consoleapplication1\main.cpp(14): note: see reference to class template instantiation 'boost::fusion::result_of::at_c<const boost::fusion::joint_view<LhSequence,RhSequence>,1>' being compiled 1> with 1> [ 1> LhSequence=const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>, 1> RhSequence=const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_> 1> ] 1>e:\boost_1_60_0\include\boost\fusion\sequence\intrinsic\at.hpp(75): error C2504: 'boost::fusion::extension::at_impl<Tag>::apply<Sequence,N>': base class undefined 1> with 1> [ 1> Tag=boost::fusion::joint_view_tag 1> ] 1> and 1> [ 1> Sequence=boost::fusion::joint_view<const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>, 1> N=boost::mpl::int_<1> 1> ] 1> e:\boost_1_60_0\include\boost\fusion\sequence\intrinsic\at.hpp(83): note: see reference to class template instantiation 'boost::fusion::detail::at_impl<Sequence,N,boost::fusion::joint_view_tag>' being compiled 1> with 1> [ 1> Sequence=boost::fusion::joint_view<const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>, 1> N=boost::mpl::int_<1> 1> ] 1> e:\boost_1_60_0\include\boost\fusion\sequence\intrinsic\at.hpp(88): note: see reference to class template instantiation 'boost::fusion::result_of::at<Sequence,boost::mpl::int_<1>>' being compiled 1> with 1> [ 1> Sequence=boost::fusion::joint_view<const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>> 1> ] 1> e:\boost_1_60_0\include\boost\core\enable_if.hpp(68): note: see reference to class template instantiation 'boost::fusion::result_of::at_c<boost::fusion::joint_view<LhSequence,RhSequence>,1>' being compiled 1> with 1> [ 1> LhSequence=const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>, 1> RhSequence=const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_> 1> ] 1> e:\boost_1_60_0\include\boost\core\enable_if.hpp(75): note: see reference to class template instantiation 'boost::lazy_disable_if_c<false,T>' being compiled 1> with 1> [ 1> T=boost::fusion::result_of::at_c<boost::fusion::joint_view<const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>,1> 1> ] 1> e:\gitlab\vs\consoleapplication1\consoleapplication1\main.cpp(14): note: see reference to class template instantiation 'boost::lazy_disable_if<boost::is_const<boost::fusion::joint_view<LhSequence,RhSequence>>,boost::fusion::result_of::at_c<boost::fusion::joint_view<LhSequence,RhSequence>,1>>' being compiled 1> with 1> [ 1> LhSequence=const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>, 1> RhSequence=const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_> 1> ] 1>e:\boost_1_60_0\include\boost\core\enable_if.hpp(68): error C2039: 'type': is not a member of 'boost::fusion::result_of::at_c<boost::fusion::joint_view<LhSequence,RhSequence>,1>' 1> with 1> [ 1> LhSequence=const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>, 1> RhSequence=const boost::fusion::vector<int,char,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_> 1> ] 1>e:\boost_1_60_0\include\boost\core\enable_if.hpp(68): error C3646: 'type': unknown override specifier 1>e:\boost_1_60_0\include\boost\core\enable_if.hpp(68): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Attachments (1)
Change History (4)
by , 7 years ago
comment:1 by , 7 years ago
comment:3 by , 7 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
It is not a bug, but by design. fusion::at_c requires
Random Access Sequence
, but fusion::join returns fusion::joint_view i.e.Forward Access Sequence
.