Boost C++ Libraries: Ticket #12553: set_info_rv compile error struct vs. class https://svn.boost.org/trac10/ticket/12553 <p> Under Visual Studio 2010, 2012, and 2015 (but not 2008) I see the following compilation errors: </p> <pre class="wiki">c:\vendor\boost_1_62_0\include\boost\exception\info.hpp(206) : error C4099: 'boost::exception_detail::set_info_rv' : type name first seen using 'struct' now seen using 'class' c:\vendor\boost_1_62_0\include\boost\exception\exception.hpp(186) : see declaration of 'boost::exception_detail::set_info_rv' c:\vendor\boost_1_62_0\include\boost\exception\info.hpp(241) : error C4099: 'boost::exception_detail::set_info_rv&lt;boost::throw_function&gt;' : type name first seen using 'struct' now seen using 'class' c:\vendor\boost_1_62_0\include\boost\exception\info.hpp(256) : error C4099: 'boost::exception_detail::set_info_rv&lt;boost::throw_file&gt;' : type name first seen using 'struct' now seen using 'class' c:\vendor\boost_1_62_0\include\boost\exception\info.hpp(271) : error C4099: 'boost::exception_detail::set_info_rv&lt;boost::throw_line&gt;' : type name first seen using 'struct' now seen using 'class' </pre><p> Indeed, on line 185 of boost/exception/exception.hpp I see this (namespace boost::exception_detail): </p> <pre class="wiki"> template &lt;class&gt; struct set_info_rv; </pre><p> And on line 205 of bost/exception/info.hpp I see this, also in the boost::exception_detail namespace: </p> <pre class="wiki"> template &lt;class T&gt; class set_info_rv; </pre><p> There is a guard above this one on line 202: </p> <pre class="wiki">#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES </pre><p> Which I think explains why an old compiler like Visual Studio 2008 does not run into this. </p> <p> Manually changing the affected definitions in info.hpp from class to struct fixes the problem. </p> <p> I was unable to figure out how to browse current head to see if this was fixed (no Browse Source tab anymore and no obvious URLs to the Git repo on the Git wiki pages). I'm using 1.62.0. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12553 Trac 1.4.3 Emil Dotchevski Wed, 26 Oct 2016 18:53:13 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/12553#comment:1 https://svn.boost.org/trac10/ticket/12553#comment:1 <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">fixed</span> </li> </ul> <p> Thanks for reporting -- fixed. </p> Ticket guitar80@… Sun, 06 Nov 2016 20:52:07 GMT <link>https://svn.boost.org/trac10/ticket/12553#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12553#comment:2</guid> <description> <p> Is there any way we can push these changes to the modular-boost repo? These errors are delaying my project and it doesn't seem there has been a push in 4 months. Please feel free to email me if that is easier (guitar80@…). Thanks for your help in getting this fixed! </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Emil Dotchevski</dc:creator> <pubDate>Mon, 07 Nov 2016 19:39:24 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/12553#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12553#comment:3</guid> <description> <p> I've just merged the develop branch of the throw_exception repo and of the exception repo into master. So just pull the master branch. </p> </description> <category>Ticket</category> </item> </channel> </rss>