For the implementation class, if your class template is TFoo, the private implementation class should be TFooImplementation.
For the implementation methods, if an implementation method does not have a type-specific signature (it does not have AType in its argument list), name it the same as the public template method, and reexport it by using the qualified name in the class declaration. Otherwise, change the name to prevent the compiler from generating warnings. If your template method is Bar, the implementation method should be ImplementBar.
For the type-specific methods, if your type-specific operation is IsEqual, the type-specific method should be TypeSpecificIsEqual.