Template questions

Edward Diener eddielee_no_spam_here at tropicsoft.com
Sat Mar 22 17:44:20 PDT 2008


I am going to be asking a number of questions about D templates in 
various posts, and I hope others can help me understand D templates 
despite the documentation.

First question:

In the documentation on templates I read these lines:

"Even if template arguments are implicitly converted to the same 
template parameter type, they still refer to different instances:
struct TFoo(int x) { }
static assert(is(TFoo!(3) == TFoo!(2 + 1))); // 3 and 2+1 are both 3 of 
// type
int
static assert(!is(TFoo!(3) == TFoo!(3u))); // 3u and 3 are different
// types"

To what is the "int" on line 6 refer ?
Why is line 3 considered a D template ? It does not begin with 'template 
...'. It looks like a simple 'struct' to me with a public member. How 
then can it be instantiated as if it were a template ?

Otherwise I do understand what is being said about templates being 
instantiated to different instances.





More information about the Digitalmars-d mailing list