mixin bug?

sldkf via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Aug 12 16:48:54 PDT 2016


On Friday, 12 August 2016 at 23:14:23 UTC, Engine Machine wrote:
> On Friday, 12 August 2016 at 15:35:50 UTC, sldkf wrote:
>> On Friday, 12 August 2016 at 02:09:21 UTC, Engine Machine 
>> wrote:
>>> On Thursday, 11 August 2016 at 21:25:20 UTC, sldkf wrote:
>>>> On Thursday, 11 August 2016 at 20:27:01 UTC, Engine Machine
>
> This is not the solution to the original problem.
>
> template X(T)
> {
>   int _len = 0;
>   int Length() { return _len; }
>   int length(this T)() { return (cast(T)this).Length(); }
> }
>
> template Y(T)
> {
>   mixin X!T;
>   int Length() { return 3; }
> }
>
>
> Then calling length returns 0, while calling Length returns 3. 
> But we obviously want length to "follow" Length, yet it doesn't 
> due to D resolving length in X before it is mixed in Y!T.

No "length" returns 3.

https://ideone.com/T8HjZl

Really, it's there, in front of your eyes.


More information about the Digitalmars-d-learn mailing list