|Posted by Timon Gehr|
in reply to Tejas
On 3/12/23 11:06, Tejas wrote:
> On Saturday, 11 March 2023 at 19:52:06 UTC, Timon Gehr wrote:
>> On 3/10/23 23:47, Paul Backus wrote:
>>> On Friday, 10 March 2023 at 13:46:03 UTC, Ogi wrote:
>>>> On Thursday, 9 March 2023 at 17:07:40 UTC, Paul Backus wrote:
>>>>> I think probably you have to go on a case-by-case basis. `File.byLine`, for example, does not and should not precompute `front`, because doing so is potentially very expensive.
>>>> And then ‘File.byLine’ ends up being const and now you can’t call ‘front’ on it. Ouch.
>>> Ranges already don't work with `const`, so the fact that this one fails to work with `const` a little more than usual is not a huge deal, IMO.
>> `const` tends to just not work really well together with abstraction.
>> "`const` correctness" in D is a fool's errand.
> Should we just remove `const` then and get it over with?
`const` is fine for POD. Things like `scope const(ubyte)` are useful.
It's just not a good match for abstract data types.