Pavol Droba skrev:
Thorsten Ottosen wrote:
Pavol Droba skrev:
Hi,
char* is not longer supported as a default range type by the range library. you can use const char* literals only.
You can pass char* only if you convert it to a range using as_literal or as_array helpers, that are part of the range library.
We have to change this since thare were ambiguieties in char* usage.
Best regards, Pavol.
L Pocaille wrote:
The following code was working in boost 1.34
char smurf_name[512]; strcpy(smurf_name, "Schtroumpf"); bool samething= boost::iequals("Schtroumpf", smurf_name); assert(samething);
but it no longer works in 1.35. Pavol,
why don't you use as_literal() internally in the string library? Would that not preserve the behavior?
Actualy I do. But it seems, that this way it works only with const-chars .
Oh? On every compiler? Looking at the example I'me a bit surprised that this have ever worked *unless smurf_name was passed by value to force a decay*. AFAICT, the range returned by as_literal(smurf_name) will be very long because we don't scan arrays, only pointers, for a null. I remember some problems with this earlier. But I'm suprprised that our regression of the string algorithms library would not have cought this. -Thorsten