std::make_unique
From cppreference.com
< cpp | memory | unique ptr
Defined in header
<memory>
|
||
template< class T, class... Args >
unique_ptr<T> make_unique( Args&&... args ); |
(1) | (since C++14) (only for non-array types) |
template< class T >
unique_ptr<T> make_unique( std::size_t size ); |
(2) | (since C++14) (only for array types with unknown bound) |
template< class T, class... Args >
/* unspecified */ make_unique( Args&&... args ) = delete; |
(3) | (since C++14) (only for array types with known bound) |
Constructs an object of type T
and wraps it in a std::unique_ptr.
1) Constructs a non-array type
T
. The arguments args
are passed to the constructor of T
. The function does not participate in the overload resolution if T
is an array type. The function is equivalent to:
unique_ptr<T>(new T(std::forward<Args>(args)...))
2) Constructs an array of unknown bound
T
. The function does not participate in the overload resolution unless T
is an array of unknown bound. The function is equivalent to:
unique_ptr<T>(new typename std::remove_extent<T>::type[size]())
3) Construction of arrays of known bound is disallowed.
Contents |
[edit] Parameters
args | - | list of arguments with which an instance of T will be constructed.
|
size | - | the size of the array to construct |
[edit] Return value
std::unique_ptr of an instance of type T
.
[edit] Exceptions
Any exception thrown by the contructor of T
. If an exception is thrown, this function has no effect.
[edit] See also
constructs a new unique_ptr (public member function) |