I’ve been happily using Boost.Log (and much of the rest of Boost) for years, but on upgrading to 1.60, I find that I get runtime errors on MSVC 11. 

 

I’ve tracked the problem back to a simple representative example (as provided with the Boost.Log library):

http://www.boost.org/doc/libs/1_60_0/libs/log/example/doc/tutorial_fmt_stream.cpp

 

The problematic portion of the example is the usage of character arrays when setting up the formatter, specifically:

<< ": <"

<< "> "

The code compiles fine but then throws an exception at runtime, seemingly due to uninitialized data.  Removing the strings in the formatter configuration makes the error disappear. I would guess that it has something to do with xvalues going into the formatter unintentionally, but this code has functioned fine on prior versions of Boost 1.59-1.54, and I can find nothing in the release notes that points me at where the problem might be.


I am compiling with BOOST_SPIRIT_USE_PHOENIX_V3.

 

Before I start doing lots of diffs, has anyone else experienced this problem, and is there any known solution or workaround?

 

Thanks for all of the excellent work and support,

Rob