}
};
-template<class T, void (*F)(void*) = free>
+template<class T>
class Malloced {
T *ptr;
public:
Malloced(T *ptr_)
: ptr{ptr_}
{}
+ Malloced &operator=(T *ptr_) {
+ if (ptr)
+ free(ptr);
+ ptr = ptr_;
+ return *this;
+ }
~Malloced() {
if(ptr)
- F(ptr);
+ free(ptr);
}
auto operator *() {
return ptr;