id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12553,set_info_rv compile error struct vs. class,jpettiss@…,Emil Dotchevski,"Under Visual Studio 2010, 2012, and 2015 (but not 2008) I see the following compilation errors: {{{ 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' : 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' : 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' : type name first seen using 'struct' now seen using 'class' }}} Indeed, on line 185 of boost/exception/exception.hpp I see this (namespace boost::exception_detail): {{{ template struct set_info_rv; }}} And on line 205 of bost/exception/info.hpp I see this, also in the boost::exception_detail namespace: {{{ template class set_info_rv; }}} There is a guard above this one on line 202: {{{ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES }}} Which I think explains why an old compiler like Visual Studio 2008 does not run into this. Manually changing the affected definitions in info.hpp from class to struct fixes the problem. 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.",Bugs,closed,To Be Determined,exception,Boost 1.62.0,Problem,fixed,,