[Issue 7177] $ should forward to length by default
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Mar 21 10:14:54 PDT 2013
http://d.puremagic.com/issues/show_bug.cgi?id=7177
--- Comment #24 from Steven Schveighoffer <schveiguy at yahoo.com> 2013-03-21 10:14:53 PDT ---
(In reply to comment #22)
> Because if you don't, then you can never use $ when slicing a range.
This is extreme. You certainly CAN use $ with ranges that support $.
> And really, isRandomAccessRange should require that $ work with finite ranges for
> the same reason. As it stands, you pretty much can't use $ in generic code.
> It's only good for arrays, because you can't count on it working for anything
> else.
Yes you can, it just requires the range supports $. Define supportsDollar
trait. Done.
> The appropriate range templates must be able to require them for us to be
> able to use them, and if we change them to require opDollar without this
> enhancement request, then it's going to break a lot of code.
Then don't change them. Requiring $ is as simple as defining a trait that
checks for $ support. There is no reason slicing has to be predicated on
having an end point. And having an end point does not require having a length
(see strings) and is not necessarily an integer value equivalent to the length.
If, for example, we add requiring $ for isRandomAccessRange, and then have a
function that requires a random access range but doesn't use $, what is the
benefit of doing that? Either you need $ or you don't, and that is
quantifiable with a separate trait. Support for slicing or indexing is a
precondition for having $ but $ is not required in order to slice or index.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list