\[~dinesh.bolkensteyn] my understanding of this (which is admittedly very shaky) is that in the Noncompliant example there are actually 3 params: a, b, and an as-yet-unnamed param of type T. So I'm not sure how this translates to Java. But I'm happy to add {cpp} (never used templates, so I'll take your word for it. :-) )