Boost logo

Boost :

Subject: Re: [boost] [Review:Algorithms] is_ordered name
From: Phil Endecott (spam_from_boost_dev_at_[hidden])
Date: 2011-09-23 20:08:49

Marshall Clow <mclow.lists_at_[hidden]> wrote:
> On Sep 23, 2011, at 9:33 AM, Phil Endecott wrote:
>> Also, regarding the name: I would expect any "is_something" function
>> to return a boolean. Since this returns an iterator I would have
>> called it something like find_disorder. (There is a good chance that
>> an iterator is convertible to bool, so one could mistakenly write
>> "if (is_ordered(begin,end)) { ... }".)
> "disorder" doesn't sit quite right with me for some reason.
> How about "ordered_until", maybe?
> or "find_unordered"

Well, I have a find_ordered that does a binary search on a sorted range
like std::up|lower_bound and std::equal_range do. I have always felt
that std::find should be called std::find_unordered, or at least
something in the name should indicate which of those std::algorithms
require an ordered range and which don't. Anyway, find_unordered
sounds to me like a variant of std::find, which is not what this
algorithm is. I think any find_ADJECTIVE would sound like that to me;
this case needs a find_NOUN.

I spent a few moments trying to think of a noun that means "point at
which ordering stops". There probably is one that's better than
"disorder". It's not quite a "discontinuity", but maybe there is
something like that from maths. I also wondered about a more general
word like "failure", since any predicate can be passed.
"find_ordering_failure" maybe? Or even just "find_unordering" or
"find_unorder". Any thoughts?

Regards, Phil.

Boost list run by bdawes at, gregod at, cpdaniel at, john at