/trunk/Examples/test-suite/template_typedef_rec.i
Swig | 113 lines | 87 code | 26 blank | 0 comment | 0 complexity | 3e467d759a6c3e96f7e0e8ed02257bd6 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %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>;