mirror of https://github.com/swig/swig
40 lines
1.1 KiB
OpenEdge ABL
40 lines
1.1 KiB
OpenEdge ABL
%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> >;
|
|
|