On 14 Nov 2002 12:40:38 +0000, Anthony Williams <[EMAIL PROTECTED]> wrote:
>I have uploaded lexical_compare.hpp to the yahoo files area. It contains >implementations of the function template lexicalCompare. Just a little comment and a couple of questions. The former is actually just a matter of personal preference, so don't feel qualms about ignoring it (well, not that the same advice isn't valid for the questions too :-) I would write the body as: for (...) { if(*first1 < *first2) return -1; else if(*first2 < *first1) return +1; } if(first2 != last2) return -1; else if(first1 != last1) return +1; else return 0; The difference is in the order of the out-of-loop tests. Since we test what is *not* exhausted (or empty since the beginning) I prefer to check the second sequence first, so that the order of the tests that give -1 is the same inside and out of the loop. In other words I prefer to see first whether the first sequence is lexicographically less. BTW once you rewrite it as above you realize that you can further simplify it as: for (...) { if(*first1 < *first2) return -1; else if(*first2 < *first1) return +1; } if(first2 != last2) // (*) return -1; return first1 != last1; The questions are: a) as you know the SGI STL has such a template for long time (lexicographical_compare_3way). Did you deliberately choose a different name? Why? b) Did you really have problems without the casts? Genny. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost