COW vs. in-place.
Lionello Lunesu
lio at lunesu.remove.com
Tue Aug 1 03:34:36 PDT 2006
"Dave" <Dave_member at pathlink.com> wrote in message
news:ealack$bjg$1 at digitaldaemon.com...
>
> What if selected functions in phobos were modified to take an optional
> parameter that specified COW or in-place? The default for each would be
> whatever they do now.
>
> For example, toupper and tolower?
>
> How many times have we seen something like this:
>
> str = toupper(str); // or equivalent in another language.
str being an UTF-8 string, I don't think you can guarantee that it CAN be
made uppercase in-place. It seems to me that it's quite possible that some
uppercase UNICODE characters are larger than their lowercase versions,
possibly crossing an UTF-8 byte-count border. But there are other string
functions that don't have this problem.
In either case, a standard library should simply provide two functions, one
in-place and the other COW. I many cases, the COW function could use the
in-place one, eliminating duplicate code. For example, In my own lib I use
.ToUpper() for the in-place version and .UpperCase() for the COW one.
L.
More information about the Digitalmars-d
mailing list