On 20/12/13 09:25, Marshall Clow wrote:
On Dec 18, 2013, at 9:21 PM, Ben Pope
wrote: On 19/12/13 13:18, Ben Pope wrote:
I suspect that's not intentional.
Hmm, already reported. Ping?
This is more complicated than it looks, because some standard libraries declare do_length as: ‘virtual int do_length(mbstate_t&, const char*, const char*, size_t) const’ and others as: 'virtual int do_length(const mbstate_t&, const char*, const char*, size_t) const’
This was changed in the C++ standard back about the 2004 (changed TO const mbstate_t)
FROM const&, right? http://isocpp.org/files/papers/N3797.pdf 22.4.1.4 has it as non-const. I've checked VC2013, g++4.8.2 and libc++ and they all take it by non const.
but the Dinkumware library shipped with Visual Studio (for one) was not updated until very recently. [ I believe that it is changed for VS 2013 ]
I tried to fix this once - I broke one of the serialization tests. Robert Ramey has been looking into this as well.
Thanks, Ben