enforce()?
Steven Schveighoffer
schveiguy at yahoo.com
Mon Jul 19 07:27:32 PDT 2010
On Mon, 19 Jul 2010 09:36:54 -0400, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> On 07/19/2010 06:36 AM, Steven Schveighoffer wrote:
>> Just thinking out loud here, couldn't you use the predicate already in
>> AssumeSorted? I mean, if you're going to pass AssumeSorted into find,
>> you don't want to also specify the predicate as then the range just
>> becomes a standard range.
>>
>> There must be some kind of way to use template constraints to kill the
>> predicate arg to find when the range is an AssumeSorted struct. If not,
>> there should be.
>
> That's a good idea. The find predicate that could be derived from
> AssumeSorted's predicate pred would be !pred(a, b) && !pred(b, a).
>
> Thanks, Steve.
You're welcome :)
BTW, you don't need the combo predicate until the very end. Basically,
you do a binary search for the first element where pred(a, E) is false
(where E is the target), and then see if pred(E, a) is also false on that
element (to test for equality).
-Steve
More information about the Digitalmars-d
mailing list