You can model the relationship in the original question in EA by creating the class MyMap, going to the Detail tab in the Class Properties, selecting Parameterized in the drop-down list in the Templates group box, then adding the parameters Key with type class and T with type class.
Then create class ASpecialMap. go into the Detail tab in Class Properties, select Instantiated from the drop-down in the Templates group box, then type "int,ASpecialClass" in the Arguments text field. Go back to the class diagram and make a generalization link between ASpecialMap and MyMap.
This tells EA that class ASpecialMap is a kind of MyMap that is instantiated with the template arguments "int" and "ASpecialClass" and it will generate code appropriately, but only for the first base class. It doesn't handle derivation from multiple template classes (e.g. template <class T, class U> class C : public A<T>, public B<U>).
The <<bind>> dependency with arguments would do a better job of this kind of thing. The code generation template framework would have to be augmented to include templates for dependency (ClassDepends) and realization (ClassRealizes) links as well as for generalization links, and use these in the ClassInherits template. These new templates would need access to the link stereotype and other link attributes. Where to specify the template parameters is problematic. Using the dependency name field would be expedient, but perhaps not correct. To me it feels like a constraint.
You can also create partial specializations this way by specifying that the derived class is both parameterized and instantiated.
EA doesn't do specializations, but I was able to model them by adding a "specialization" stereotype (under Configuration, UML, Stereotypes) and then heavily modifying the code generation templates with stereotype overrides. This has the advantage that I can see by looking at the class diagram when something is a <<specialization>>. For <<specialization>> classes, I configure them as Parameterized and give the specific types as the parameter types (the names don't matter).
I was also able to do typedefs by creating a "typedef" stereotype. I create a generalization relationship between the <<typedef>> and the class it aliases. If it is aliasing a template, I can make the <<typedef>> an Instantiation with appropriate arguments. I again modified the code generation templates with stereotype overrides to generate appropriate code for the typedef stereotype.
Still working on how to do member template functions....