This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Paolo Carlini wrote:
For concreteness, you will find attached a *very* rough and redundant (please, be gentle ;) implementation of the idea. I'm still not sure if this is allowed by the standard and if less costly solutions are worthy (for instance calling the underlying strcoll more than one time for each hunk).
Sigh :(
As written, this cannot possibly be correct: if one string happens to have the chosen char (e.g., '$') in exactly the same place where the other had '\0' before the preprocessing they end up comparing wrongly equal...
Right. A better (but still not 100% reliable) hack might be to substitute '\1' for '\0' since there's no character less than it other than '\0'. The hack will not be reliable in "languages" where "x\1" collates before "x\0" (remember that collating elements may consist of multiple characters). AFAIK, the only way to do this reliably is by somehow getting access to the collation tables (e.g., by creating your own by parsing the locale definition files). This is an example of a C++ feature that cannot be portably implemented on top of the C Standard library.
Regards Martin
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |