range algorithms on container class

Jonathan M Davis newsgroup.d at jmdavisprog.com
Thu Jan 9 10:26:07 UTC 2020


On Wednesday, January 8, 2020 10:56:20 PM MST rikki cattermole via 
Digitalmars-d-learn wrote:
> Slicing via the opSlice operator overload is a convention, not a
> requirement.

It's not a requirement, but it's more than a convention. If you use the
container with foreach, the compiler will call opSlice on the container to
get a range. So, there's no need to implement opApply to iterate over a
container with foreach. You could choose to implement a container with
opApply and use a function other than opSlice for getting a range, but the
compiler understands enough to try to slice the container for you
automatically when using it with foreach.

- Jonathan M Davis





More information about the Digitalmars-d-learn mailing list