Skip to content

Commit

Permalink
refactor(ptr): UniquePtr is now uniqueptr
Browse files Browse the repository at this point in the history
  • Loading branch information
Eliot MCNAB authored and Eliot MCNAB committed Dec 4, 2023
1 parent 01fe17a commit eba4fff
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 34 deletions.
30 changes: 15 additions & 15 deletions include/UniquePtr.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

namespace mini {
template<typename T>
class UniquePtr {
class uniqueptr {
public:
explicit UniquePtr(T *ptr);
~UniquePtr(void);
UniquePtr<T>& operator=(T& other);
explicit uniqueptr(T *ptr);
~uniqueptr(void);
uniqueptr<T>& operator=(T& other);

T* getPtr(void) const;

Expand All @@ -24,54 +24,54 @@ namespace mini {
// ============================[ CONTRUCTOR ]============================ //

template<typename T>
UniquePtr<T>::UniquePtr(T *ptr) : _ptr(ptr) {}
uniqueptr<T>::uniqueptr(T *ptr) : _ptr(ptr) {}

template<typename T>
UniquePtr<T>::~UniquePtr(void) {
uniqueptr<T>::~uniqueptr(void) {
delete (this->_ptr);
}

// =============================[ ACCESSORS ]============================ //

template<typename T>
T* UniquePtr<T>::getPtr(void) const {
T* uniqueptr<T>::getPtr(void) const {
return (this->_ptr);
}

// =============================[ OPERATORS ]============================ //

template<typename T>
UniquePtr<T>& UniquePtr<T>::operator=(T& other) {
~UniquePtr();
uniqueptr<T>& uniqueptr<T>::operator=(T& other) {
~uniqueptr();
this->_ptr = other;
}

template<typename T>
T& UniquePtr<T>::operator*(void) {
T& uniqueptr<T>::operator*(void) {
return (*this->_ptr);
}

template<typename T>
T* UniquePtr<T>::operator->(void) {
T* uniqueptr<T>::operator->(void) {
return (this->ptr);
}

template<typename T>
UniquePtr<T>::operator T*(void) const {
uniqueptr<T>::operator T*(void) const {
return (this->_ptr);
}

template<typename T>
std::ostream& operator<<(std::ostream& os, UniquePtr<T>& uniquePtr) {
std::ostream& operator<<(std::ostream& os, uniqueptr<T>& uniquePtr) {
os << std::hex << uniquePtr.getPtr();
return (os);
}

// =============================[ FUNCTIONS ]============================ //

template<typename T>
UniquePtr<T> make_unique() {
return (UniquePtr<T>(new T()));
uniqueptr<T> make_unique() {
return (uniqueptr<T>(new T()));
}
}

Expand Down
38 changes: 19 additions & 19 deletions pointer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@

namespace mini {
template<typename T>
class UniquePtr {
class uniqueptr {
public:
explicit UniquePtr(T *ptr);
UniquePtr(const UniquePtr& ptr);
~UniquePtr();
UniquePtr<T>& operator=(T& other);
explicit uniqueptr(T *ptr);
uniqueptr(const uniqueptr& ptr);
~uniqueptr();
uniqueptr<T>& operator=(T& other);

T* getPtr(void) const;

Expand All @@ -19,64 +19,64 @@ namespace mini {
operator T*(void) const;

private:
UniquePtr();
UniquePtr(UniquePtr<T>& other);
UniquePtr<T>& operator=(UniquePtr& other);
uniqueptr();
uniqueptr(uniqueptr<T>& other);
uniqueptr<T>& operator=(uniqueptr& other);

T* const _ptr;
};

// ============================[ CONTRUCTOR ]============================ //

template<typename T>
UniquePtr<T>::UniquePtr(T *ptr) : _ptr(ptr) {}
uniqueptr<T>::uniqueptr(T *ptr) : _ptr(ptr) {}

template<typename T>
UniquePtr<T>& UniquePtr<T>::operator=(T& other) {
~UniquePtr();
uniqueptr<T>& uniqueptr<T>::operator=(T& other) {
~uniqueptr();
_ptr = other;
}

template<typename T>
UniquePtr<T>::~UniquePtr(void) {
uniqueptr<T>::~uniqueptr(void) {
delete _ptr;
}

// =============================[ ACCESSORS ]============================ //

template<typename T>
T* UniquePtr<T>::getPtr(void) const {
T* uniqueptr<T>::getPtr(void) const {
return (_ptr);
}

// =============================[ OPERATORS ]============================ //

template<typename T>
T& UniquePtr<T>::operator*(void) {
T& uniqueptr<T>::operator*(void) {
return (*_ptr);
}

template<typename T>
T* UniquePtr<T>::operator->(void) {
T* uniqueptr<T>::operator->(void) {
return (_ptr);
}

template<typename T>
UniquePtr<T>::operator T*(void) const {
uniqueptr<T>::operator T*(void) const {
return (_ptr);
}

template<typename T>
std::ostream& operator<<(std::ostream& os, UniquePtr<T>& uniquePtr) {
std::ostream& operator<<(std::ostream& os, uniqueptr<T>& uniquePtr) {
os << std::hex << uniquePtr.getPtr();
return (os);
}

// =============================[ FUNCTIONS ]============================ //

template<typename T>
UniquePtr<T> make_unique() {
return (UniquePtr<T>(new T()));
uniqueptr<T> make_unique() {
return (uniqueptr<T>(new T()));
}
}

Expand Down

0 comments on commit eba4fff

Please sign in to comment.