Implementing tail-const in D
Simen Kjærås
simen.kjaras at gmail.com
Mon Jan 29 13:07:05 UTC 2018
On Thursday, 25 January 2018 at 21:33:10 UTC, Simen Kjærås wrote:
> On Thursday, 25 January 2018 at 19:54:55 UTC, H. S. Teoh wrote:
>> In fact, if the standard implementation of opHeadMutable is
>> basically the same across all types (or most types), it could
>> even be provided as a mixin template in the library, then all
>> you have to do is to `mixin headMutable` or something along
>> those lines, and off you go.
>
> I believe this should be possible
I'm wrong, of course. Consider these two types:
struct S(T) {
T payload;
}
struct U(T) {
T[] payload;
}
Clearly, a mixin would have problems with at least one of these.
In the general case, the correlation between template parameters
and member types can be arbitrarily complex, so a general
solution is impossible, but even with this simple example there
are problems.
I wrote up a more formal description of what I'm suggesting:
https://gist.github.com/Biotronic/c6eefeb9796309360a5e8696d91d924d
--
Simen
More information about the Digitalmars-d
mailing list