32 #ifndef PLANCK_SAFE_PTR_H 33 #define PLANCK_SAFE_PTR_H 35 #if (__cplusplus>=201103L) 38 template<
typename T>
using safe_ptr = std::unique_ptr<T>;
44 template <
typename T>
class safe_ptr
51 safe_ptr (
const safe_ptr &) {}
52 safe_ptr &operator= (
const safe_ptr &) {
return *
this; }
55 safe_ptr() : p(0), set(false) {}
56 safe_ptr (T *p2) : p(p2), set(true) {}
57 ~safe_ptr() {
delete p; }
76 operator T*() {
return p; }
77 operator const T*()
const {
return p; }
78 T *operator->() {
return p; }
79 const T *operator->()
const {
return p; }
#define planck_assert(testval, msg)