DIP66 - Multiple alias this
IgorStepanov via Digitalmars-d
digitalmars-d at puremagic.com
Fri Oct 10 16:23:27 PDT 2014
On Friday, 10 October 2014 at 22:50:25 UTC, Walter Bright wrote:
> On 10/10/2014 3:20 PM, IgorStepanov wrote:
>>> The same issue also needs to be considered if A and B are
>>> structs instead and
>>> B has an additional alias this to an A (the solution might
>>> also be part of a
>>> fix for the cycle issue).
>>>
>>> - "If resultSet contains more then one candidates, the
>>> compiler raises an error."
>>
>> struct A
>> {
>> short s;
>> alias s this;
>> }
>>
>> struct B
>> {
>> int i;
>> alias i this;
>> }
>>
>> struct C
>> {
>> A a;
>> B b;
>> alias a this;
>> alias b this;
>> }
>>
>> long l = C(); //What do you suggest?
>
> The rule would be if:
>
> long l = C.a();
> long l = C.b();
>
> both compile, then:
>
> long l = C();
>
> must be an error, even if one of C.a() or C.b() might be a
> "better" match. This is how things work for template mixins and
> imports.
So it is.
More information about the Digitalmars-d
mailing list