[#bsl-allocate_shared-0be] = xref:bsl.adoc[bsl]::allocate_shared :relfileprefix: ../ :mrdocs: Return a `shared_ptr` managing a newly created object. == Synopses Declared in `<bslstl_sharedptr.h>` Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ARRAY_TYPE, class ALLOC> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ARRAY_TYPE>] xref:bsl/allocate_shared-0f.adoc[allocate_shared](ALLOC basicAllocator) requires is_bounded_array<ARRAY_TYPE>::value && !is_pointer<ALLOC>::value; ---- [.small]#xref:bsl/allocate_shared-0f.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ARRAY_TYPE, class ALLOC> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ARRAY_TYPE>] xref:bsl/allocate_shared-08.adoc[allocate_shared](ALLOC* basicAllocator) requires is_bounded_array<ARRAY_TYPE>::value; ---- [.small]#xref:bsl/allocate_shared-08.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ARRAY_TYPE, class ALLOC> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ARRAY_TYPE>] xref:bsl/allocate_shared-07.adoc[allocate_shared]( ALLOC basicAllocator, std::size_t numElements) requires is_unbounded_array<ARRAY_TYPE>::value && !is_pointer<ALLOC>::value; ---- [.small]#xref:bsl/allocate_shared-07.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ARRAY_TYPE, class ALLOC> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ARRAY_TYPE>] xref:bsl/allocate_shared-05d.adoc[allocate_shared]( ALLOC basicAllocator, remove_extent<ARRAY_TYPE>::type const& value) requires is_bounded_array<ARRAY_TYPE>::value && !is_pointer<ALLOC>::value; ---- [.small]#xref:bsl/allocate_shared-05d.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ARRAY_TYPE, class ALLOC> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ARRAY_TYPE>] xref:bsl/allocate_shared-05b.adoc[allocate_shared]( ALLOC* basicAllocator, std::size_t numElements) requires is_unbounded_array<ARRAY_TYPE>::value; ---- [.small]#xref:bsl/allocate_shared-05b.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ARRAY_TYPE, class ALLOC> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ARRAY_TYPE>] xref:bsl/allocate_shared-0c.adoc[allocate_shared]( ALLOC* basicAllocator, remove_extent<ARRAY_TYPE>::type const& value) requires is_bounded_array<ARRAY_TYPE>::value; ---- [.small]#xref:bsl/allocate_shared-0c.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ELEMENT_TYPE, class ALLOC, class... ARGS> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ELEMENT_TYPE>] xref:bsl/allocate_shared-01e.adoc[allocate_shared]( ALLOC basicAllocator, ARGS&&... args) requires !is_array<ELEMENT_TYPE>::value && !is_pointer<ALLOC>::value; ---- [.small]#xref:bsl/allocate_shared-01e.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ELEMENT_TYPE, class ALLOC, class... ARGS> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ELEMENT_TYPE>] xref:bsl/allocate_shared-0bb.adoc[allocate_shared]( ALLOC* basicAllocator, ARGS&&... args) requires !is_array<ELEMENT_TYPE>::value; ---- [.small]#xref:bsl/allocate_shared-0bb.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ARRAY_TYPE, class ALLOC> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ARRAY_TYPE>] xref:bsl/allocate_shared-01f.adoc[allocate_shared]( ALLOC basicAllocator, std::size_t numElements, remove_extent<ARRAY_TYPE>::type const& value) requires is_unbounded_array<ARRAY_TYPE>::value && !is_pointer<ALLOC>::value; ---- [.small]#xref:bsl/allocate_shared-01f.adoc[_» more..._]# Return a `shared_ptr` managing a newly created object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class ARRAY_TYPE, class ALLOC> xref:bsl/shared_ptr-0a.adoc[bsl::shared_ptr<ARRAY_TYPE>] xref:bsl/allocate_shared-04.adoc[allocate_shared]( ALLOC* basicAllocator, std::size_t numElements, remove_extent<ARRAY_TYPE>::type const& value) requires is_unbounded_array<ARRAY_TYPE>::value; ---- [.small]#xref:bsl/allocate_shared-04.adoc[_» more..._]# == Return Value shared pointer managing a newly created object == Parameters [cols="1,4"] |=== | Name| Description | *basicAllocator* | allocator used to supply memory | *numElements* | number of elements in the unbounded array | *value* | value used to initialize each array element | *args* | constructor arguments forwarded to the new object |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#