input range with non copyable element
Mathias LANG
geod24 at gmail.com
Mon Aug 9 02:47:40 UTC 2021
On Sunday, 8 August 2021 at 18:36:02 UTC, vit wrote:
> Hello, is there reason why elements of input range must be
> copyable?
By design, not that I can think of. But it is assumed all over
the place, unfortunately. You can make your `front` method return
by `ref`, but you're still going to get bitten as soon as you do
any `std.algorithm`-based operation, as storage classes are not
inferred (https://issues.dlang.org/show_bug.cgi?id=9423) and
things get passed by value to your delegates by default. The
problem can also show up when you `foreach` over a range
(https://issues.dlang.org/show_bug.cgi?id=15413). And finally,
`std.algorithm` need to support it.
So currently you'll have to jump through a lot of hops to get it
to work. It'll be much easier to use your own `map` & co to get
the job done for the time being. Hopefully at some point in the
near future that won't be needed anymore.
More information about the Digitalmars-d-learn
mailing list