Thread overview
Alias to struct memembers of a function paramater as a shortcut => need this for XYZ of type void*
Apr 07, 2019
Robert M. Münch
Apr 07, 2019
ag0aep6g
Apr 07, 2019
Robert M. Münch
Apr 07, 2019
ag0aep6g
April 07, 2019
struct X {
	TYPE a;
	TYPE b;
}


myFunc(X _struct){
	alias a = _struct.a;

	a = myOtherFunc();
}


X myStruct;

myFun(myStruct);


This gives an error: need this for a of type void*

I don't understand why, because all I want is a shortcut the symbol of the parameter.

-- 
Robert M. Münch
http://www.saphirion.com
smarter | better | faster

April 07, 2019
On 07.04.19 14:23, Robert M. Münch wrote:
> struct X {
>      TYPE a;
>      TYPE b;
> }
> 
> 
> myFunc(X _struct){
>      alias a = _struct.a;
> 
>      a = myOtherFunc();
> }
> 
> 
> X myStruct;
> 
> myFun(myStruct);
> 
> 
> This gives an error: need this for a of type void*
> 
> I don't understand why, because all I want is a shortcut the symbol of the parameter.

You can't make an alias to a field of an object. The alias will be made in relation to the type instead. (If that makes sense. I'm not sure how to phrase it best.)

In code, this:

    alias a = _struct.a;

is the exact same as this:

    alias a = X.a;

The instance `_struct` is not part of the alias.
April 07, 2019
On 2019-04-07 14:05:13 +0000, ag0aep6g said:

> You can't make an alias to a field of an object. The alias will be made in relation to the type instead. (If that makes sense. I'm not sure how to phrase it best.)

The docs state that an alias can either be related to the type or the symbol. Hence, in my case I expected it to be the symbol...

-- 
Robert M. Münch
http://www.saphirion.com
smarter | better | faster

April 07, 2019
On 07.04.19 17:36, Robert M. Münch wrote:
> The docs state that an alias can either be related to the type or the symbol. Hence, in my case I expected it to be the symbol...

The symbol is `X.a`. A field of an instance doesn't make a distinct symbol.