On Saturday, 30 April 2016 at 22:14:47 UTC, Ed wrote:
On Saturday, 30 April 2016 at 01:06:18 UTC, Andrew Benton wrote:
On Friday, 29 April 2016 at 19:11:24 UTC, tsbockman wrote:
Rare as in, "effecting only a very small amount of real world
code" - not as in "effecting only a very small number of
people".
[...]
Additionally, any libraries that provide a base class with a
mixin require inheritors to know about that mixin and provide
it in their own code.
[...]
It looks like you miss the solution proposed above, using a
template this parameter. It's very clear and consise ! Actually
the mixin is even not necessary.
Unfortunately the solution with the templated "this" creates
non-virtual functions. Using the template and the classes in
that solution, the following main method produces two UUIDs:
void main() {
Base a = new Base(), b = new Inheritor();
a.writeName.writeln;
b.writeName.writeln;
}
which is very different from the output that we would want by
having the specialization of Base.