| 16 | #ifdef __cplusplus |
| 17 | /* SwigValueWrapper is described in swig.swg */ |
| 18 | template<typename T> class SwigValueWrapper { |
| 19 | struct SwigMovePointer { |
| 20 | T *ptr; |
| 21 | SwigMovePointer(T *p) : ptr(p) { } |
| 22 | ~SwigMovePointer() { delete ptr; } |
| 23 | SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; } |
| 24 | } pointer; |
| 25 | SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs); |
| 26 | SwigValueWrapper(const SwigValueWrapper<T>& rhs); |
| 27 | public: |
| 28 | SwigValueWrapper() : pointer(0) { } |
| 29 | SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; } |
| 30 | operator T&() const { return *pointer.ptr; } |
| 31 | T *operator&() { return pointer.ptr; } |
| 32 | }; |
| 33 | |
| 34 | template <typename T> T SwigValueInit() { |
| 35 | return T(); |
nothing calls this directly
no outgoing calls
no test coverage detected