alias to fully qualified enum in scope where enum is expected

Timothee Cour via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Aug 6 14:04:30 PDT 2014


On Wed, Aug 6, 2014 at 12:04 PM, via Digitalmars-d-learn <
digitalmars-d-learn at puremagic.com> wrote:

> On Wednesday, 6 August 2014 at 16:48:57 UTC, Timothee Cour via
> Digitalmars-d-learn wrote:
>
>> Thanks, I know with statement could be used but I was hoping for a
>> solution
>> not involving adding syntax to call site.
>>
>
> If you control the declaration of the enum, you could write:
>
> alias a1 = A.a1;
> alias a2 = A.a2;
>
> A bit tedious, but it works, and could be automated if need be.
>

yes, but that pollutes the scope, what I wanted was to only expose the
aliases in places where A is expected, see motivational in previous message:

void fun(with(A){A a}, int b){...} //conceptually like this
void test(){
 int a1=1;
 fun(A.a1, a1);
 fun(a1, a1);    // first a1 refers to A.a1, second one to local variable
int a1
}

ok I guess this isn't possible using current semantics.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20140806/17874717/attachment-0001.html>


More information about the Digitalmars-d-learn mailing list