On Tuesday 05 November 2002 12:24 pm, Lars Gullik Bjønnes wrote:
> Angus Leeming <[EMAIL PROTECTED]> writes:
> | On Tuesday 05 November 2002 12:08 pm, Lars Gullik Bjønnes wrote:
> >> Angus Leeming <[EMAIL PROTECTED]> writes:
> >> | Doesn't fix getVectorFromString, but does reduce cpu usage thereafter.
> >> | Ok to apply?
> >>
> >> yes.
> |
> | Thanks, but since I had the file open...
> |
> | I think that this is wrong:
> |
> | // A functor for use with std::sort, leading to case insensitive sorting
> | struct compareNoCase: public std::binary_function<string, string, bool>
> | {
> |     bool operator()(string const & s1, string const & s2) const {
> |             return compare_ascii_no_case(s1, s2) < 0;
> |     }
> | };
> |
> | vector<string> const getKeys(InfoMap const & map)
> | {
> |     vector<string> bibkeys = ...;
> |     sort(bibkeys.begin(), bibkeys.end(), compareNoCase());
> | }
> |
> | Shouldn't sort use compare_ascii_no_case directly here? As written the
> | code is using (a == b), but sort uses (a < b) doesn't it?
>
> I think the code is right as it is.
>
> sort would try to use std::less<string>(a, b) which would return
> bool(a < b)

Indeed. However, does the functor need to derive from std::binary_function? 
It compiles fine without which, if I read my "Effective STL" correctly, means 
that it'll also work ok.

Angus

Reply via email to