Template error with gdc-10 but not with latest dmd and ldc

Per Nordlöw per.nordlow at gmail.com
Sun Jul 26 20:26:41 UTC 2020


On Sunday, 26 July 2020 at 19:27:13 UTC, rikki cattermole wrote:
> Old frontend:
>
> Up to      2.060  : Failure with output: onlineapp.d(2): Error: 
> valid attribute identifiers are @property, @safe, @trusted, 
> @system, @disable not @nogc
> 2.061   to 2.065.0: Failure with output:
> -----
> onlineapp.d(2): Error: user defined attributes cannot appear as 
> postfixes
> onlineapp.d(2): Error: semicolon expected following function 
> declaration
> onlineapp.d(2): Error: Declaration expected, not 'return'
> onlineapp.d(2): Error: unrecognized declaration
> -----
>
> 2.066.0 to 2.078.1: Failure with output: onlineapp.d(7): Error: 
> template instance add_long_n0!void does not match template 
> declaration add_long_n0(alias T = void)(long x)
> 2.079.1 to 2.086.1: Failure with output: onlineapp.d(7): Error: 
> template instance `add_long_n0!void` does not match template 
> declaration `add_long_n0(alias T = void)(long x)`
> Since      2.087.1: Success and no output

I don't understand.

I removed the qualifiers but still get the same error from this 
unqualified code:


long add_long_n0(alias T=void)(long x) { return x + 0; }

int main(string[] args) {
     long long_sum = 0;
     long_sum += add_long_n0!(void)(0);
     return cast(int)long_sum;
}



More information about the Digitalmars-d-learn mailing list