#include namespace clanguml { namespace t20006 { template struct A { T a_int(T arg) { return arg + 1; } T a_string(T arg) { return arg + "_string"; } }; template struct B { T b(T arg) { return a_.a_int(arg); } A a_; }; template <> struct B { std::string b(std::string arg) { return a_.a_string(arg); } A a_; }; void tmain() { B bint; B bstring; bint.b(1); bstring.b("bstring"); } } }