Shout out to D at cppcon, when talkign about ranges.
Kagamin via Digitalmars-d
digitalmars-d at puremagic.com
Thu Oct 8 05:35:06 PDT 2015
On Wednesday, 7 October 2015 at 14:59:28 UTC, Trass3r wrote:
> On Tuesday, 6 October 2015 at 22:39:01 UTC, Ulrich Küttler
> wrote:
>> Yes, this is an explanation. Thanks. So the argument being C++
>> customs. Now that you mention it, this seems to be the
>> argument in Eric's D4128 paper, too.
>>
>> I was hoping for a somewhat deeper reasoning. Out of
>> curiously, I am still trying to grasp all the implications.
>> Ranges are hard.
>
> Another one is "odd number of iterators algorithms"
>> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4128.html#appendix-3-d-ranges-and-algorithmic-complexity
>> D’s choice of algorithmic basis operations is inherently less
>> efficient than C++’s.
Hmm... conceptually a bidirectional range should be able to
iterate back and forth:
void is_word_boundary(Bidi r)
{
bool is_word_prev = r.re.empty ? false : isword(r.re.back);
bool is_word_this = r.empty ? false : isword(r.front);
return is_word_prev != is_word_this;
}
auto i = myrange;
for(; !i.empty; i.popFront())
if( is_word_boundary(i) )
break;
More information about the Digitalmars-d
mailing list