#include <stddef.h>
#include <memory>
#include <type_traits>
#include <utility>
Go to the source code of this file.
|
template<class T , class Deleter = std::default_delete<T>> |
using | UT_UniquePtr = std::unique_ptr< T, Deleter > |
| A smart pointer for unique ownership of dynamically allocated objects. More...
|
|
|
template<class T , class... REST, std::enable_if_t<!std::is_array_v< T >, int > = 0> |
UT_UniquePtr< T > | UTmakeUnique (REST &&...args) |
|
template<class T , std::enable_if_t< std::is_array_v< T > &&std::extent_v< T >==0, int > = 0> |
UT_UniquePtr< T > | UTmakeUnique (size_t len) |
| Construct a value initialized 1D array of type T with len elements. More...
|
|
template<class T , class... REST, std::enable_if_t< std::extent_v< T >!=0, int > = 0> |
void | UTmakeUnique (REST &&...)=delete |
| Construction of arrays of known bound is disallowed. Just do it directly! More...
|
|
template<class T , std::enable_if_t<!std::is_array_v< T >, int > = 0> |
UT_UniquePtr< T > | UTmakeUniqueForOverwrite () |
| Construct a default initialized T in a UT_UniquePtr. More...
|
|
template<class T , std::enable_if_t< std::is_array_v< T > &&std::extent_v< T >==0, int > = 0> |
UT_UniquePtr< T > | UTmakeUniqueForOverwrite (size_t len) |
| Construct a default initialized 1D array of type T with len elements. More...
|
|
template<class T , class... REST, std::enable_if_t< std::extent_v< T >!=0, int > = 0> |
void | UTmakeUniqueForOverwrite (REST &&...)=delete |
| Construction of arrays of known bound is disallowed. Just do it directly! More...
|
|
template<class T , class Deleter = std::default_delete<T>>
A smart pointer for unique ownership of dynamically allocated objects.
UT_UniquePtr mimics a built-in pointer except that it guarantees deletion of the object pointed to, either upon destruction or via an explicit reset(). UT_UniquePtr is a simple solution for simple needs; use UT_SharedPtr/UT_IntrusivePtr if your needs are more complex.
Definition at line 39 of file UT_UniquePtr.h.
template<class T , class... REST, std::enable_if_t<!std::is_array_v< T >, int > = 0>
Constructs an object of type T and wraps it in an UT_UniquePtr. The args are passed to the constructor of T.
Definition at line 50 of file UT_UniquePtr.h.
template<class T , std::enable_if_t< std::is_array_v< T > &&std::extent_v< T >==0, int > = 0>
Construct a value initialized 1D array of type T with len elements.
Definition at line 61 of file UT_UniquePtr.h.
template<class T , class... REST, std::enable_if_t< std::extent_v< T >!=0, int > = 0>
void UTmakeUnique |
( |
REST && |
... | ) |
|
|
delete |
Construction of arrays of known bound is disallowed. Just do it directly!
template<class T , std::enable_if_t<!std::is_array_v< T >, int > = 0>
Construct a default initialized T in a UT_UniquePtr.
Definition at line 81 of file UT_UniquePtr.h.
template<class T , std::enable_if_t< std::is_array_v< T > &&std::extent_v< T >==0, int > = 0>
Construct a default initialized 1D array of type T with len elements.
Definition at line 92 of file UT_UniquePtr.h.
template<class T , class... REST, std::enable_if_t< std::extent_v< T >!=0, int > = 0>
void UTmakeUniqueForOverwrite |
( |
REST && |
... | ) |
|
|
delete |
Construction of arrays of known bound is disallowed. Just do it directly!