Boost C++ Libraries: Ticket #11210: BOOST_CURRENT_FUNCTION internal compiler error https://svn.boost.org/trac10/ticket/11210 <p> Hi, </p> <p> if using a template function with an parameter that needs to be specified explicitly and is either a pseudo scoped enum or scoped enum with a specific storage type, compilation on vs2013 will fail with and internal compiler error. This can easily be fixed using FUNCTION (XXX) for that compiler-version. </p> <p> (XXX) 2 leading and trailing underscores missing at FUNCTION </p> <p> Greetz, ILo. </p> <p> How to reproduce: </p> <p> struct Val { </p> <blockquote> <p> enum Enum : unsigned char { </p> <blockquote> <p> x, </p> </blockquote> <p> }; </p> </blockquote> <p> }; </p> <p> typedef ScopeEnum::Vals </p> <p> template &lt;Vals eVal&gt; void Foo() { </p> <blockquote> <p> BOOST_ASSERT(eVal == Val::x); </p> </blockquote> <p> } </p> <p> How to solve: (add to line 31 in front of all ifdef, current_function.hpp) </p> <p> #if defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt; 1700) <em> &gt; vs2012 (only tested for vs2013) </em></p> <p> # define BOOST_CURRENT_FUNCTION FUNCTION (XXX) </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11210 Trac 1.4.3