I'd just like to verify that my understanding of T : T* in this template is correct:
struct S(T : T*) { T t; } It's my understanding that it's requiring that the template argument be implicitly convertible to a pointer to that type. However, as this stackoverflow question shows: http://stackoverflow.com/questions/10145779/why-this-template-parameters- constraint-doesnt-work it appears that the compiler is instead taking this to mean that the pointer part of the type should be stripped from the template argument's type. Given some of the bizarre stuff that happens with is expressions and the like, it's not out of the question that I'm just misunderstanding what the compiler is supposed to do with T : T* in this case (though I don't think so), so I'd like to verify it. - Jonathan M Davis