Boost logo

Boost :

Subject: Re: [boost] [Filesystem] Hidden overloaded virtual function
From: Ben Pope (benpope81_at_[hidden])
Date: 2013-12-19 21:48:05


On 20/12/13 09:25, Marshall Clow wrote:
> On Dec 18, 2013, at 9:21 PM, Ben Pope <benpope81_at_[hidden]> wrote:
>
>> On 19/12/13 13:18, Ben Pope wrote:
>>>
>>> I suspect that's not intentional.
>>
>> Hmm, already reported. Ping?
>>
>> https://svn.boost.org/trac/boost/ticket/7660
>
> 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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk