| Thread overview | |||||||
|---|---|---|---|---|---|---|---|
|
April 12, 2008 Alias question ( 1.0 ) | ||||
|---|---|---|---|---|
| ||||
I am trying to understand the difference between and alias type and an alias declaration. Is the distinction such that if the next token after 'alias' is a type, then the alias always refers to the full type including that token before the final alias name, but if the next token after 'alias' is not a type then the alias always refers to the complete declaration before the final alias name ? Or is there some other rule that determines whether or not an alias is an alias for a type as opposed to an alias for a declaration ? | ||||
April 13, 2008 Re: Alias question ( 1.0 ) | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Edward Diener | Edward Diener wrote: > I am trying to understand the difference between and alias type and an alias declaration. An alias type works analogously to C's typedef. An alias declaration gives an alternate name for any other name, like: alias foo.bar baz; is sort of equivalent to the C: #define baz foo.bar > Is the distinction such that if the next token after 'alias' is a type, then the alias always refers to the full type including that token before the final alias name, but if the next token after 'alias' is not a type then the alias always refers to the complete declaration before the final alias name ? Right. | |||
April 14, 2008 Re: Alias question ( 1.0 ) | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote: > Edward Diener wrote: >> I am trying to understand the difference between and alias type and an alias declaration. > > An alias type works analogously to C's typedef. An alias declaration gives an alternate name for any other name, like: > > alias foo.bar baz; > > is sort of equivalent to the C: > > #define baz foo.bar OK, so an alias creates a compile-time symbol which stands for another symbol, as long as the symbol it stands for is not an expression but a declaration instead. > >> Is the distinction such that if the next token after 'alias' is a type, then the alias always refers to the full type including that token before the final alias name, but if the next token after 'alias' is not a type then the alias always refers to the complete declaration before the final alias name ? > > Right. Thanks ! Appreciated ! | |||
April 15, 2008 Re: Alias question ( 1.0 ) | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Edward Diener | Edward Diener wrote:
> Walter Bright wrote:
>> Edward Diener wrote:
>>> I am trying to understand the difference between and alias type and an alias declaration.
>>
>> An alias type works analogously to C's typedef. An alias declaration gives an alternate name for any other name, like:
>>
>> alias foo.bar baz;
>>
>> is sort of equivalent to the C:
>>
>> #define baz foo.bar
>
> OK, so an alias creates a compile-time symbol which stands for another symbol, as long as the symbol it stands for is not an expression but a declaration instead.
Right. You can alias any symbol - other aliases, variable names, module names, function names, template names, struct names, etc.
| |||
April 15, 2008 Re: Alias question ( 1.0 ) | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | Walter Bright wrote:
> Edward Diener wrote:
>> Walter Bright wrote:
>>> Edward Diener wrote:
>>>> I am trying to understand the difference between and alias type and an alias declaration.
>>>
>>> An alias type works analogously to C's typedef. An alias declaration gives an alternate name for any other name, like:
>>>
>>> alias foo.bar baz;
>>>
>>> is sort of equivalent to the C:
>>>
>>> #define baz foo.bar
>>
>> OK, so an alias creates a compile-time symbol which stands for another symbol, as long as the symbol it stands for is not an expression but a declaration instead.
>
> Right. You can alias any symbol - other aliases, variable names, module names, function names, template names, struct names, etc.
Got it now. Thanks !
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply