digitalmars.D - Aliasing lambdas
- Peter Alexander (6/6) Jan 13 2013 Is there any reason why this isn't allowed:
- Timon Gehr (2/8) Jan 13 2013 No. It is a gratuitous grammar limitation.
- Philippe Sigaud (8/21) Jan 13 2013 The same limitation forbids:
- Timon Gehr (7/30) Jan 13 2013 I think it should be roughly:
Is there any reason why this isn't allowed: alias f = (x => x); but this is: template A(alias B) { alias A = B; } alias f = A!(x => x); ???
Jan 13 2013
On 01/13/2013 08:55 PM, Peter Alexander wrote:Is there any reason why this isn't allowed: alias f = (x => x); but this is: template A(alias B) { alias A = B; } alias f = A!(x => x); ???No. It is a gratuitous grammar limitation.
Jan 13 2013
On Sun, Jan 13, 2013 at 9:07 PM, Timon Gehr <timon.gehr gmx.ch> wrote:On 01/13/2013 08:55 PM, Peter Alexander wrote:The same limitation forbids: alias __traits(whatever, ...) result; The grammar says: AliasDeclaration: alias BasicType Declarator (and others, but this is the one limiting you). BasicType should be replaced by PrimaryExrpession, or something like that.Is there any reason why this isn't allowed: alias f = (x => x); but this is: template A(alias B) { alias A = B; } alias f = A!(x => x); ???No. It is a gratuitous grammar limitation.
Jan 13 2013
On 01/13/2013 09:38 PM, Philippe Sigaud wrote:On Sun, Jan 13, 2013 at 9:07 PM, Timon Gehr <timon.gehr gmx.ch> wrote:I think it should be roughly: alias TemplateArgument Identifier; alias Identifier=TemplateArgument; Note: The current grammar allows alias int x = 2; Which does not make any sense.On 01/13/2013 08:55 PM, Peter Alexander wrote:The same limitation forbids: alias __traits(whatever, ...) result; The grammar says: AliasDeclaration: alias BasicType Declarator (and others, but this is the one limiting you). BasicType should be replaced by PrimaryExrpession, or something like that.Is there any reason why this isn't allowed: alias f = (x => x); but this is: template A(alias B) { alias A = B; } alias f = A!(x => x); ???No. It is a gratuitous grammar limitation.
Jan 13 2013