Boost C++ Libraries: Ticket #11877: fusion at_c compile error on join of two vectors https://svn.boost.org/trac10/ticket/11877 <p> using visual studio 2015.1 compile error: </p> <p> 1&gt;------ Build started: Project: ConsoleApplication1, Configuration: Debug Win32 ------ 1&gt; main.cpp 1&gt;e:\boost_1_60_0\include\boost\fusion\sequence\intrinsic\at.hpp(75): error C2504: 'boost::fusion::extension::at_impl&lt;Tag&gt;::apply&lt;Sequence,N&gt;': base class undefined 1&gt; with 1&gt; [ 1&gt; Tag=boost::fusion::joint_view_tag 1&gt; ] 1&gt; and 1&gt; [ 1&gt; Sequence=const boost::fusion::joint_view&lt;const boost::fusion::vector&lt;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_&gt;,const boost::fusion::vector&lt;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_&gt;&gt;, 1&gt; N=boost::mpl::int_&lt;1&gt; 1&gt; ] 1&gt; 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&lt;Sequence,N,boost::fusion::joint_view_tag&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; Sequence=const boost::fusion::joint_view&lt;const boost::fusion::vector&lt;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_&gt;,const boost::fusion::vector&lt;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_&gt;&gt;, 1&gt; N=boost::mpl::int_&lt;1&gt; 1&gt; ] 1&gt; 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&lt;Sequence,boost::mpl::int_&lt;1&gt;&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; Sequence=const boost::fusion::joint_view&lt;const boost::fusion::vector&lt;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_&gt;,const boost::fusion::vector&lt;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_&gt;&gt; 1&gt; ] 1&gt; e:\gitlab\vs\consoleapplication1\consoleapplication1\main.cpp(14): note: see reference to class template instantiation 'boost::fusion::result_of::at_c&lt;const boost::fusion::joint_view&lt;<a class="missing wiki">LhSequence</a>,<a class="missing wiki">RhSequence</a>&gt;,1&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; <a class="missing wiki">LhSequence</a>=const boost::fusion::vector&lt;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_&gt;, 1&gt; <a class="missing wiki">RhSequence</a>=const boost::fusion::vector&lt;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_&gt; 1&gt; ] 1&gt;e:\boost_1_60_0\include\boost\fusion\sequence\intrinsic\at.hpp(75): error C2504: 'boost::fusion::extension::at_impl&lt;Tag&gt;::apply&lt;Sequence,N&gt;': base class undefined 1&gt; with 1&gt; [ 1&gt; Tag=boost::fusion::joint_view_tag 1&gt; ] 1&gt; and 1&gt; [ 1&gt; Sequence=boost::fusion::joint_view&lt;const boost::fusion::vector&lt;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_&gt;,const boost::fusion::vector&lt;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_&gt;&gt;, 1&gt; N=boost::mpl::int_&lt;1&gt; 1&gt; ] 1&gt; 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&lt;Sequence,N,boost::fusion::joint_view_tag&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; Sequence=boost::fusion::joint_view&lt;const boost::fusion::vector&lt;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_&gt;,const boost::fusion::vector&lt;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_&gt;&gt;, 1&gt; N=boost::mpl::int_&lt;1&gt; 1&gt; ] 1&gt; 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&lt;Sequence,boost::mpl::int_&lt;1&gt;&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; Sequence=boost::fusion::joint_view&lt;const boost::fusion::vector&lt;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_&gt;,const boost::fusion::vector&lt;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_&gt;&gt; 1&gt; ] 1&gt; 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&lt;boost::fusion::joint_view&lt;LhSequence,RhSequence&gt;,1&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; <a class="missing wiki">LhSequence</a>=const boost::fusion::vector&lt;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_&gt;, 1&gt; <a class="missing wiki">RhSequence</a>=const boost::fusion::vector&lt;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_&gt; 1&gt; ] 1&gt; e:\boost_1_60_0\include\boost\core\enable_if.hpp(75): note: see reference to class template instantiation 'boost::lazy_disable_if_c&lt;false,T&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; T=boost::fusion::result_of::at_c&lt;boost::fusion::joint_view&lt;const boost::fusion::vector&lt;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_&gt;,const boost::fusion::vector&lt;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_&gt;&gt;,1&gt; 1&gt; ] 1&gt; e:\gitlab\vs\consoleapplication1\consoleapplication1\main.cpp(14): note: see reference to class template instantiation 'boost::lazy_disable_if&lt;boost::is_const&lt;boost::fusion::joint_view&lt;LhSequence,RhSequence&gt;&gt;,boost::fusion::result_of::at_c&lt;boost::fusion::joint_view&lt;LhSequence,RhSequence&gt;,1&gt;&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; <a class="missing wiki">LhSequence</a>=const boost::fusion::vector&lt;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_&gt;, 1&gt; <a class="missing wiki">RhSequence</a>=const boost::fusion::vector&lt;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_&gt; 1&gt; ] 1&gt;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&lt;boost::fusion::joint_view&lt;LhSequence,RhSequence&gt;,1&gt;' 1&gt; with 1&gt; [ 1&gt; <a class="missing wiki">LhSequence</a>=const boost::fusion::vector&lt;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_&gt;, 1&gt; <a class="missing wiki">RhSequence</a>=const boost::fusion::vector&lt;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_&gt; 1&gt; ] 1&gt;e:\boost_1_60_0\include\boost\core\enable_if.hpp(68): error C3646: 'type': unknown override specifier 1&gt;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 ========== </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11877 Trac 1.4.3 sstsai@… Tue, 29 Dec 2015 01:50:47 GMT attachment set https://svn.boost.org/trac10/ticket/11877 https://svn.boost.org/trac10/ticket/11877 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">main.cpp</span> </li> </ul> Ticket Kohei Takahashi <flast@…> Mon, 04 Jan 2016 02:29:54 GMT <link>https://svn.boost.org/trac10/ticket/11877#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11877#comment:1</guid> <description> <p> It is not a bug, but by design. <a href="http://www.boost.org/doc/libs/1_60_0/libs/fusion/doc/html/fusion/sequence/intrinsic/functions/at_c.html">fusion::at_c</a> requires <code>Random Access Sequence</code>, but <a href="http://www.boost.org/doc/libs/1_60_0/libs/fusion/doc/html/fusion/algorithm/transformation/functions/join.html">fusion::join</a> returns <a href="http://www.boost.org/doc/libs/1_60_0/libs/fusion/doc/html/fusion/view/joint_view.html">fusion::joint_view</a> i.e. <code>Forward Access Sequence</code>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Joel de Guzman</dc:creator> <pubDate>Mon, 04 Jan 2016 03:38:52 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/11877#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11877#comment:2</guid> <description> <p> Solution: use <a href="http://www.boost.org/doc/libs/1_43_0/libs/fusion/doc/html/fusion/container/conversion/metafunctions/as_vector.html">as_vector</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Joel de Guzman</dc:creator> <pubDate>Mon, 04 Jan 2016 03:39:33 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/11877#comment:3 https://svn.boost.org/trac10/ticket/11877#comment:3 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> Ticket