22 lines
553 B
C++
22 lines
553 B
C++
#ifndef ARBUTILS_BORROWEDPTR_HPP
|
|
#define ARBUTILS_BORROWEDPTR_HPP
|
|
|
|
namespace Arbutils::Memory{
|
|
template <class T>
|
|
class BorrowedPtr{
|
|
T* _ptr;
|
|
|
|
public:
|
|
inline explicit constexpr BorrowedPtr(T* ptr) noexcept : _ptr(ptr){};
|
|
|
|
inline constexpr T* GetUnsafe() noexcept { return _ptr; }
|
|
inline constexpr const T* GetUnsafe() const noexcept { return _ptr; }
|
|
|
|
T* operator->() noexcept { return _ptr; }
|
|
const T* operator->() const noexcept { return _ptr; }
|
|
|
|
};
|
|
}
|
|
|
|
#endif // ARBUTILS_BORROWEDPTR_HPP
|