%module nested_template_base #ifdef SWIGOCAML %warnfilter(SWIGWARN_PARSE_KEYWORD) val; #endif %inline %{ template <class T> class OuterT { public: T outer(T t) { return t; } }; %} // The %template goes after OuterT and before OuterC as OuterC::InnerC's base is handled inside OuterC %template(OuterTInnerS) OuterT<OuterC::InnerS>; #if !defined(SWIGCSHARP) && !defined(SWIGJAVA) %feature("flatnested") OuterC::InnerS; %feature("flatnested") OuterC::InnerC; #endif %inline %{ class OuterC { public: struct InnerS; class InnerC; }; struct OuterC::InnerS { int val; InnerS(int val = 0) : val(val) {} }; class OuterC::InnerC : public OuterT<InnerS> { public: OuterT<InnerS>& innerc() { return *this; } }; %}
Generated by dwww version 1.15 on Tue Jul 2 00:40:39 CEST 2024.