Thread overview
BUG - Compiler crash with alias of template.
Mar 23, 2004
larry cowan
Re: BUG - Compiler crash with alias of template. - bug.d
Mar 23, 2004
larry cowan
Mar 23, 2004
larry cowan
Mar 23, 2004
larry cowan
March 23, 2004
If the alias definition is put after the template definition everything compiles nicely.

Tested on Fedora Linux, Win98 and Win2k with DMD 0.81.


-- 
Julio César Carrascal Urquijo.



March 23, 2004
What b64 are you using?  I get "Error: Invalid base64 character '['" right away.

In article <c3phsi$17ui$1@digitaldaemon.com>, news.digitalmars.com says...
>
>If the alias definition is put after the template definition everything compiles nicely.
>
>Tested on Fedora Linux, Win98 and Win2k with DMD 0.81.
>
>
>-- 
>Julio César Carrascal Urquijo.
>
>
>begin 666 bug.d
>M[[N_86QI87,@5&5M<&QA=&4A*$-L87-S*2!#;&%S<U1E;7!L871E.PT*#0IC
>M;&%S<R!#;&%S<R![?0T*<W1R=6-T(%1E;7!L871E*%0Q*2![?0T*#0HO+V%L
>M:6%S(%1E;7!L871E(2A#;&%S<RD@0VQA<W-496UP;&%T93L-"@T*=F]I9"!M
>-86EN*"D-"GL-"GT-"@``
>`
>end
>


March 23, 2004
Just Outlook Express. I'll post it again using the web interface.


In article <c3pnhj$1ih2$1@digitaldaemon.com>, larry cowan says...
>
>What b64 are you using?  I get "Error: Invalid base64 character '['" right away.
>
>In article <c3phsi$17ui$1@digitaldaemon.com>, news.digitalmars.com says...
>>
>>If the alias definition is put after the template definition everything compiles nicely.
>>
>>Tested on Fedora Linux, Win98 and Win2k with DMD 0.81.
>>
>>
>>-- 
>>Julio César Carrascal Urquijo.
>>
>>
>>begin 666 bug.d
>>M[[N_86QI87,@5&5M<&QA=&4A*$-L87-S*2!#;&%S<U1E;7!L871E.PT*#0IC
>>M;&%S<R!#;&%S<R![?0T*<W1R=6-T(%1E;7!L871E*%0Q*2![?0T*#0HO+V%L
>>M:6%S(%1E;7!L871E(2A#;&%S<RD@0VQA<W-496UP;&%T93L-"@T*=F]I9"!M
>>-86EN*"D-"GL-"GT-"@``
>>`
>>end
>>
>
>


March 23, 2004
Same problem.  It changed in the last 3 chars of the short line near the end, but still has many invalid chars for me.  Why b64 something like this anyway? Does it have some web-ugly binary in it?

>>>begin 666 bug.d
>>>M[[N_86QI87,@5&5M<&QA=&4A*$-L87-S*2!#;&%S<U1E;7!L871E.PT*#0IC
>>>M;&%S<R!#;&%S<R![?0T*<W1R=6-T(%1E;7!L871E*%0Q*2![?0T*#0HO+V%L
>>>M:6%S(%1E;7!L871E(2A#;&%S<RD@0VQA<W-496UP;&%T93L-"@T*=F]I9"!M
>>>-86EN*"D-"GL-"GT-"@``
>>>`
>>>end
>>>
>begin 0644 bug.d
>M[[N_86QI87,@5&5M<&QA=&4A*$-L87-S*2!#;&%S<U1E;7!L871E.PT*#0IC
>M;&%S<R!#;&%S<R![?0T*<W1R=6-T(%1E;7!L871E*%0Q*2![?0T*#0HO+V%L
>M:6%S(%1E;7!L871E(2A#;&%S<RD@0VQA<W-496UP;&%T93L-"@T*=F]I9"!M
>-86EN*"D-"GL-"GT-"BA#
>`
>end


March 23, 2004
Yea, you'r right. Here's the code.

alias Template!(Class) ClassTemplate;

class Class {}
struct Template(T1) {}

//alias Template!(Class) ClassTemplate;

void main()
{
}

That's it, although the files seem fine here. I supouse Microsoft's base64 isn't the standard bas64 algo. I wonder why?




----- Original Message ----- 
From: "larry cowan" <larry_member@pathlink.com>
Newsgroups: D
Sent: Tuesday, March 23, 2004 11:59 AM
Subject: Re: BUG - Compiler crash with alias of template. - bug.d


> Same problem.  It changed in the last 3 chars of the short line near the
end,
> but still has many invalid chars for me.  Why b64 something like this
anyway?
> Does it have some web-ugly binary in it?


March 23, 2004
Thanks.  At least it doesn't match the b64 in Phobos.

For what it's worth, the Template has to be before the alias for the crash, the Class doesn't matter - it can even be after the main().

In article <c3q3rc$28gf$1@digitaldaemon.com>, news.digitalmars.com says...
>
>Yea, you'r right. Here's the code.
>
>alias Template!(Class) ClassTemplate;
>
>class Class {}
>struct Template(T1) {}
>
>//alias Template!(Class) ClassTemplate;
>
>void main()
>{
>}
>


March 23, 2004
Thanks.  At least it doesn't match the b64 in Phobos.

For what it's worth, the Template has to be before the alias to prevent the crash, the Class doesn't matter - it can even be after the main().

(Outlook won't let me cancel if I posted with the web interface.)

In article <c3q3rc$28gf$1@digitaldaemon.com>, news.digitalmars.com says...
>
>Yea, you'r right. Here's the code.
>
>alias Template!(Class) ClassTemplate;
>
>class Class {}
>struct Template(T1) {}
>
>//alias Template!(Class) ClassTemplate;
>
>void main()
>{
>}
>


March 23, 2004
Yes, that's exactly the workarround I'm using right now. I was going to report another error with templates specialized on interfaces but it seems to work with 0.81 now.