Subject: Re: [boost] [String Algo] error in ireplace_first or ireplace_all with std::wstring under gcc 3.4.2 (MingW)
From: Brian Ravnsgaard Riis (brian_at_[hidden])
Date: 2010-01-20 16:54:56
On 20-01-2010 18:41, Doug Swanson wrote:
> Thank you so much for your reply! I really appreciate it.
> Although I remember reading about this issue at some point in the past,
> I have used std::wstring under MingW-gcc for quite some time now with no
> problems. If it were really 100% incompatible I would wish it would
> give a compilation error! I wonder why it crashes under the 'ireplace'
> algorithms but not the 'replace' ones -- especially since I remain
> strictly within Unicode Plane 0 (basic 2-byte characters in UTF-16/UCS-2
> which fit in a single wchar_t on Windows).
> In any event, if you have any further insight here I would be interested
> to hear it, but I suppose I will just have to change compilers. Thanks
>> As far as I know, that answer is quite simple. Unless something have
>> changed recently, mingw does not support unicode strings. I would
>> suggest to swith to non-mingw version of gcc.
How goes the difference between replace and ireplace? IIUC MinGW itself
is as fully wide-aware as any other gcc, it's libstdc++ which is not
under MinGW. Using MinGW with another standard library (STLPort for
instance) should make your problems go away.
However, since only one of the two algorithms fail, I wonder at their
implementation. Does ireplace use some part of the standard library that
replace does not?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk