%module template_using_member_default_arg %inline %{ template struct ThingA { ThingA() {} protected: void describeA() {} }; template struct ThingB { ThingB() {} protected: void describeB() {} }; %} %inline %{ template struct ThingADerived : ThingA { using ThingA::describeA; }; template struct ThingBDerived : ThingB { using ThingB::describeB; }; %} %template(ThingAInt) ThingA; // was okay %template(ThingADerivedInt) ThingADerived; %template(ThingBInt) ThingB; // was failing - using directive in this template was not found %template(ThingBDerivedInt) ThingBDerived;