www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Another template question

reply Edward Diener <eddielee_no_spam_here tropicsoft.com> writes:
In the documentation I read:

"If multiple templates with the same TemplateIdentifier are declared, 
they are distinct if they have a
different number of arguments or are differently specialized."

What happens if they are not distinct ? Is it a compiler error ?

template MyTemplate(T,U) { T a; U b;}
template MyTemplate(A,B) { A * a; B * b;}

Is this an error ?
Apr 12 2008
parent reply Robert Fraser <fraserofthenight gmail.com> writes:
Edward Diener wrote:
 In the documentation I read:
 
 "If multiple templates with the same TemplateIdentifier are declared, 
 they are distinct if they have a
 different number of arguments or are differently specialized."
 
 What happens if they are not distinct ? Is it a compiler error ?
 
 template MyTemplate(T,U) { T a; U b;}
 template MyTemplate(A,B) { A * a; B * b;}
 
 Is this an error ?

Try it.
Apr 12 2008
parent Edward Diener <eddielee_no_spam_here tropicsoft.com> writes:
Robert Fraser wrote:
 Edward Diener wrote:
 In the documentation I read:

 "If multiple templates with the same TemplateIdentifier are declared, 
 they are distinct if they have a
 different number of arguments or are differently specialized."

 What happens if they are not distinct ? Is it a compiler error ?

 template MyTemplate(T,U) { T a; U b;}
 template MyTemplate(A,B) { A * a; B * b;}

 Is this an error ?

Try it.

It compiles without error. Then I tried instantiating a template instance using the template identifier and recieved an error. Makes sense. Sorry for the noise.
Apr 12 2008