| %module smart_pointer_templatevariables |
| |
| %inline %{ |
| template <class _CharT> |
| struct basic_string { |
| int npos; |
| }; |
| |
| template<class T> |
| struct Ptr { |
| Ptr(T *p = 0) : ptr(p) {} |
| ~Ptr() { delete ptr; } |
| T *operator->() const { return ptr; } |
| private: |
| T *ptr; |
| }; |
| |
| template <typename KernelPixelT> |
| struct DiffImContainer { |
| int id; |
| // static members seem to be can of worms. Note that SWIG wraps them as non-static members. Why? |
| // Note CHANGES entry 10/14/2003. Static const variables are not wrapped as constants but as a read only variable. Why? |
| // static short xyz; |
| // static const short constvar = 555; |
| }; |
| //template<typename KernelPixelT> short DiffImContainer<KernelPixelT>::xyz = 0; |
| |
| DiffImContainer<double>* create(int id, short xyz) { |
| DiffImContainer<double> *d = new DiffImContainer<double>(); |
| d->id = id; |
| // DiffImContainer<double>::xyz = xyz; |
| return d; |
| } |
| %} |
| |
| %template(BasicString) basic_string<char>; |
| %template(DiffImContainer_D) DiffImContainer<double>; |
| %template(DiffImContainerPtr_D) Ptr<DiffImContainer<double> >; |
| |