range algorithms on container class

Alex Burton ab at bab.com
Thu Jan 9 05:28:23 UTC 2020


I am writing a specialised container class, and want to make it 
work like a normal array with range functions.
After some struggle, I look at the code for std.container.array 
and see this comment :

When using `Array` with range-based functions like those in 
`std.algorithm`,
  * `Array` must be sliced to get a range (for example, use 
`array[].map!`
  * instead of `array.map!`). The container itself is not a range.


I had thought the compiler would make a generic random access 
range that works with the built in array for anything else with a 
simililar interface, but it doesn't.

Does that mean it is not possible to have a library container 
implementation that works nicely with range algorithms ? Do you 
have to slice it like the comment suggests ?




More information about the Digitalmars-d-learn mailing list