%module(directors="1") director_template %{ #include %} %include %feature("director") HandleBytes; %inline %{ template class TwoTemplateParms {}; %} %template(TT_int_double) TwoTemplateParms; %inline %{ class HandleBytes { public: virtual void handle(const std::vector data) = 0; // Note: not instantiated with %template virtual void handle2(TwoTemplateParms data) = 0; virtual ~HandleBytes() {} }; void bytes_wrapper(const std::vector data, HandleBytes *handler) { handler->handle(data); } %}