Why MapResult.empty() is not const in Phobos?
Exil at gmall.com
Sat Jul 6 16:18:49 UTC 2019
On Saturday, 6 July 2019 at 06:56:22 UTC, Jonathan M Davis wrote:
> On Friday, July 5, 2019 11:37:10 PM MDT valmat via
> Digitalmars-d wrote:
>> Minimal examples when it broke code:
>> https://run.dlang.io/is/HbEfkJ https://run.dlang.io/is/4h1B6Z
> In general, it can't be empty, because that would require that
> the range it's wrapping have a const empty, and most don't. The
> only way that map (or any wrapper range) can have a const empty
> would be if it goes to the effort of duplicating the function
> and uses static ifs to determine whether the version that's
> const will work or whether the version that's not const needs
> to be compiled in. And since const ranges are basically
> unusable, because they can't be iterated, going to that level
> of effort and making the code messy in that manner is arguably
> a waste of time.
> - Jonathan M Davis
So phobos doesn't properly use const either, officially. Just one
more reason not to use const on the pile.
More information about the Digitalmars-d