// I have not implemented/tested this code.
// There are most likely errors.
// This is for conversation.
template <typename T>
class UniquePointerT {
public:
UniquePointerT(): data{new T} { }
UniquePointerT(const UniquePointerT & other) {
// copy it allocating new data.
}
UniquePointerT & operator =(const UniquePointerT & other)=delete;
~UniquePointerT() {
delete data;
}
private:
T * data;
}
memory
unique_ptr
unique_ptr<type> var; // a pointer to a single item unique_ptr<type[]> var; // a pointer to an array.
make_unique
data = make_unique<int>();
data1 = make_unique<int>(7);
data2 = make_unique<int[]>(size);
get gets the underlying pointer.