MCPcopy Create free account
hub / github.com/SamuraiT/mecab-python3 / SwigValueWrapper

Class SwigValueWrapper

src/MeCab/MeCab_wrap.cpp:22–36  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

20#ifdef __cplusplus
21/* SwigValueWrapper is described in swig.swg */
22template<typename T> class SwigValueWrapper {
23 struct SwigMovePointer {
24 T *ptr;
25 SwigMovePointer(T *p) : ptr(p) { }
26 ~SwigMovePointer() { delete ptr; }
27 SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
28 } pointer;
29 SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
30 SwigValueWrapper(const SwigValueWrapper<T>& rhs);
31public:
32 SwigValueWrapper() : pointer(0) { }
33 SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
34 operator T&() const { return *pointer.ptr; }
35 T *operator&() { return pointer.ptr; }
36};
37
38template <typename T> T SwigValueInit() {
39 return T();

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected