Thread overview | |||||
---|---|---|---|---|---|
|
July 12, 2016 Is this a bug ? | ||||
---|---|---|---|---|
| ||||
test.d ========= template newType(size_t N){ class NewType { enum Type = N ; } } class A{} alias Type = newType!1 ; N New(N)(){ return new N(); } void main(){ auto a = New!A; auto n = New!Type; } ============ test.d(19): Error: template instance New!(__T7newTypeVmi1Z) does not match template declaration New(N)() |
July 12, 2016 Re: Is this a bug ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Chang Long | On Tuesday, 12 July 2016 at 04:38:42 UTC, Chang Long wrote:
> test.d
> =========
> template newType(size_t N){
> class NewType
> {
> enum Type = N ;
> }
> }
>
just find it should be this:
template newType(size_t N){
class NewType
{
enum Type = N ;
}
alias newType = NewType;
}
|
July 12, 2016 Re: Is this a bug ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Chang Long | On 7/12/16 1:31 AM, Chang Long wrote:
> On Tuesday, 12 July 2016 at 04:38:42 UTC, Chang Long wrote:
>> test.d
>> =========
>> template newType(size_t N){
>> class NewType
>> {
>> enum Type = N ;
>> }
>> }
>>
>
> just find it should be this:
>
> template newType(size_t N){
> class NewType
> {
> enum Type = N ;
> }
> alias newType = NewType;
> }
>
Just some advice: Name your template NewType, or the class newType, and then it will work.
-Steve
|
Copyright © 1999-2021 by the D Language Foundation