%module template_typedef_rec %inline %{ // --- includes required to compile the wrapper code --- typedef size_t MY_sizeT; typedef long MY_intT; typedef double MY_floatT; class test_Array { public: typedef MY_intT intT; typedef MY_sizeT sizeT; }; template <typename T> class ArrayIterator_ { public: typedef test_Array::intT intT; }; template <typename T> class ArrayReverseIterator { public: typedef test_Array::intT intT; }; template <typename T> class ArrayPrimitiveT : public test_Array { public: typedef T ValueT; typedef T valueT; typedef ArrayIterator_<T> Iterator; typedef ArrayIterator_<const T> ConstIterator; typedef ArrayReverseIterator<T> ReverseIterator; typedef ArrayReverseIterator<const T> ConstReverseIterator; }; template <class T> class TreeNode { public: typedef T ValueT; typedef T valueT; typedef MY_intT intT; typedef MY_sizeT sizeT; }; template <class T> struct ArrayPointerT { }; template <class T> class TreeIterator { public: typedef MY_intT intT; typedef MY_sizeT sizeT; typedef ArrayPointerT< T* > NodeArrayT; }; template <class T> class Tree { public: typedef T ValueT; typedef T valueT; typedef MY_intT intT; typedef MY_sizeT sizeT; typedef TreeNode<T> NodeT; typedef ArrayPointerT< NodeT* > NodeArrayT; typedef TreeIterator<NodeT> Iterator; typedef TreeIterator<NodeT> ConstIterator; }; class ModelNode { typedef MY_intT intT; typedef MY_floatT floatT; typedef MY_sizeT sizeT; }; class Model { typedef MY_intT intT; typedef MY_sizeT sizeT; typedef Tree<ModelNode> TreeT; typedef TreeT::NodeT TreeNodeT; typedef TreeT::Iterator TreeIteratorT; }; %} // --- define ANSI C/C++ declarations to be interfaced --- %template(ModelTree) Tree<ModelNode>;
Generated by dwww version 1.15 on Tue Jul 2 00:13:32 CEST 2024.