diff --git a/make_shared_array.html b/make_shared_array.html index 2b9b5bd..3437e9e 100644 --- a/make_shared_array.html +++ b/make_shared_array.html @@ -104,10 +104,11 @@ shared_ptr<U> allocate_shared_noinit(const A& allocator); }
template<typename U, typename... Args> - shared_ptr<U> make_shared(size_t size, Args&&... args); -template<typename U, typename A, typename... Args> - shared_ptr<U> allocate_shared(const A& allocator, size_t size, Args&&... args);+
template<typename U, typename... Args> // U = T[] +shared_ptr<U> make_shared(size_t size, Args&&... args); + +template<typename U, typename A, typename... Args> // U = T[] +shared_ptr<U> allocate_shared(const A& allocator, size_t size, Args&&... args);
-Requires: The expression
new(pointer) T(forward<Args>(args)...)
, where @@ -146,74 +147,83 @@ template<typename U, typename A, typename... Args> take any constructor arguments. These overloads invoke the default constructor ofT
for each array element.
template<typename U, typename... Args> - shared_ptr<U> make_shared(Args&&... args); -template<typename U, typename A, typename... Args> - shared_ptr<U> allocate_shared(const A& allocator, Args&&... args);+
template<typename U, typename... Args> // U = T[N] +shared_ptr<U> make_shared(Args&&... args); + +template<typename U, typename A, typename... Args> // U = T[N] +shared_ptr<U> allocate_shared(const A& allocator, Args&&... args);
-Description: These overloads of the utilities above are for a fixed size array.
template<typename U, typename... Args> - shared_ptr<U> make_shared(initializer_list<T> list); -template<typename U, typename A, typename... Args> - shared_ptr<U> allocate_shared(const A& allocator, initializer_list<T> list);+
template<typename U, typename... Args> // U = T[] +shared_ptr<U> make_shared(initializer_list<T> list); + +template<typename U, typename A, typename... Args> // U = T[] +shared_ptr<U> allocate_shared(const A& allocator, initializer_list<T> list);
-Description: These overloads initialize the array elements from the initializer list.
template<typename U, typename... Args> - shared_ptr<U> make_shared(const T (&list)[N]); -template<typename U, typename A, typename... Args> - shared_ptr<U> allocate_shared(const A& allocator, const T (&list)[N]);+
template<typename U, typename... Args> // U = T[N] +shared_ptr<U> make_shared(const T (&list)[N]); + +template<typename U, typename A, typename... Args> // U = T[N] +shared_ptr<U> allocate_shared(const A& allocator, const T (&list)[N]);
-Description: These overloads of the utilities above are for a fixed size array.
template<typename U, typename... Args> - shared_ptr<U> make_shared(size_t size, const T (&list)[N]); -template<typename U, typename A, typename... Args> - shared_ptr<U> allocate_shared(const A& allocator, size_t size, const T (&list)[N]);+
template<typename U, typename... Args> // U = T[][N] +shared_ptr<U> make_shared(size_t size, const T (&list)[N]); + +template<typename U, typename A, typename... Args> // U = T[][N] +shared_ptr<U> allocate_shared(const A& allocator, size_t size, const T (&list)[N]);
Description: These overloads initialize inner array elements from the initializer list.
template<typename U, typename... Args> // U = T[M][N] - shared_ptr<U> make_shared(const T (&list)[N]); +shared_ptr<U> make_shared(const T (&list)[N]); + template<typename U, typename A, typename... Args> // U = T[M][N] - shared_ptr<U> allocate_shared(const A& allocator, const T (&list)[N]);+shared_ptr<U> allocate_shared(const A& allocator, const T (&list)[N]);
-Description: These overloads of the utilities above are for a fixed size array.
template<typename U> - shared_ptr<U> make_shared(size_t size, T&& value); -template<typename U, typename A> - shared_ptr<U> allocate_shared(const A& allocator, size_t size, T&& value);+
template<typename U> // U = T[] +shared_ptr<U> make_shared(size_t size, T&& value); + +template<typename U, typename A> // U = T[] +shared_ptr<U> allocate_shared(const A& allocator, size_t size, T&& value);
-Description: These overloads initialize array elements with the given value.
template<typename U> - shared_ptr<U> make_shared(T&& value); -template<typename U, typename A> - shared_ptr<U> allocate_shared(const A& allocator, T&& value);+
template<typename U> // U = T[N] +shared_ptr<U> make_shared(T&& value); + +template<typename U, typename A> // U = T[N] +shared_ptr<U> allocate_shared(const A& allocator, T&& value);
-Description: These overloads of the utilities above are for a fixed size array.
template<typename U> - shared_ptr<U> make_shared_noinit(size_t size); -template<typename U, typename A> - shared_ptr<U> allocate_shared_noinit(const A& allocator, size_t size);+
template<typename U> // U = T[] +shared_ptr<U> make_shared_noinit(size_t size); + +template<typename U, typename A> // U = T[] +shared_ptr<U> allocate_shared_noinit(const A& allocator, size_t size);
-Description: These overloads do not perform any value initialization of elements.
template<typename U> - shared_ptr<U> make_shared_noinit(); -template<typename U, typename A> - shared_ptr<U> allocate_shared_noinit(const A& allocator);+
template<typename U> // U = T[N] +shared_ptr<U> make_shared_noinit(); + +template<typename U, typename A> // U = T[N] +shared_ptr<U> allocate_shared_noinit(const A& allocator);
Description: These overloads of the utilities above are for a fixed size array.