On 07/17/2013 06:29 PM, Zhong Yu wrote: > class A<A> // one name for 7 different things > { > A A; > A A(){ return A; } > <A> A A(A A){ return A; } > } Nice example. It's actually 8 different things: class A1<A2> { A2 A3; A2 A4(){ return A3; } <A6> A6 A7(A6 A8){ return A8; } } ;-) Peter