allocate_shared overloads

Synopses

Declared in <bslstl_sharedptr.h>

Return a shared_ptr object referring to and managing a new ARRAY_TYPE object, where ARRAY_TYPE is a bounded array. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ARRAY_TYPE object, and each element in the array is default constructed.

template<
    class ARRAY_TYPE,
    class ALLOC>
bsl::shared_ptr<ARRAY_TYPE>
allocate_shared(ALLOC basicAllocator)
requires is_bounded_array<ARRAY_TYPE>::value &&
                                                     !is_pointer<ALLOC>::value;

Return a shared_ptr object referring to and managing a new ARRAY_TYPE object, where ARRAY_TYPE is a bounded array. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ARRAY_TYPE object, and each element in the array is default constructed. If basicAllocator is 0, then the default allocator will be used instead.

template<
    class ARRAY_TYPE,
    class ALLOC>
bsl::shared_ptr<ARRAY_TYPE>
allocate_shared(ALLOC* basicAllocator)
requires is_bounded_array<ARRAY_TYPE>::value;

Return a shared_ptr object referring to and managing a new ARRAY_TYPE object, where ARRAY_TYPE is a unbounded array. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ARRAY_TYPE containing the specified numElements number of elements, and each element in the array is default constructed.

template<
    class ARRAY_TYPE,
    class ALLOC>
bsl::shared_ptr<ARRAY_TYPE>
allocate_shared(
    ALLOC basicAllocator,
    std::size_t numElements)
requires is_unbounded_array<ARRAY_TYPE>::value &&
                                                     !is_pointer<ALLOC>::value;

Return a shared_ptr object referring to and managing a new ARRAY_TYPE object, where ARRAY_TYPE is a bounded array. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ARRAY_TYPE object, and each element in the array is constructed from the specified value.

template<
    class ARRAY_TYPE,
    class ALLOC>
bsl::shared_ptr<ARRAY_TYPE>
allocate_shared(
    ALLOC basicAllocator,
    remove_extent<ARRAY_TYPE>::type const& value)
requires is_bounded_array<ARRAY_TYPE>::value &&
                                                     !is_pointer<ALLOC>::value;

Return a shared_ptr object referring to and managing a new ARRAY_TYPE object, where ARRAY_TYPE is a unbounded array. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ARRAY_TYPE containing the specified numElements number of elements, and each element in the array is default constructed. If basicAllocator is 0, then the default allocator will be used instead.

template<
    class ARRAY_TYPE,
    class ALLOC>
bsl::shared_ptr<ARRAY_TYPE>
allocate_shared(
    ALLOC* basicAllocator,
    std::size_t numElements)
requires is_unbounded_array<ARRAY_TYPE>::value;

Return a shared_ptr object referring to and managing a new ARRAY_TYPE object, where ARRAY_TYPE is a bounded array. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ARRAY_TYPE object, and each element in the array is constructed from the specified value. If basicAllocator is 0, then the default allocator will be used instead.

template<
    class ARRAY_TYPE,
    class ALLOC>
bsl::shared_ptr<ARRAY_TYPE>
allocate_shared(
    ALLOC* basicAllocator,
    remove_extent<ARRAY_TYPE>::type const& value)
requires is_bounded_array<ARRAY_TYPE>::value;

Return a shared_ptr object referring to and managing a new ELEMENT_TYPE object. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ELEMENT_TYPE object, which is initialized by calling allocator_traits<ALLOC>::construct passing basicAllocator, an ELEMENT_TYPE * pointer to space for the new shared object, and the specified arguments std::forward<ARGS>(args)....

template<
    class ELEMENT_TYPE,
    class ALLOC,
    class... ARGS>
bsl::shared_ptr<ELEMENT_TYPE>
allocate_shared(
    ALLOC basicAllocator,
    ARGS&&... args)
requires !is_array<ELEMENT_TYPE>::value && !is_pointer<ALLOC>::value;

Return a shared_ptr object referring to and managing a new ELEMENT_TYPE object. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ELEMENT_TYPE object, which is initialized using the ELEMENT_TYPE constructor that takes the specified arguments std::forward<ARGS>(args).... If ELEMENT_TYPE uses bslma allocators, then basicAllocator is passed as an extra argument in the final position. If basicAllocator is 0, then the default allocator will be used instead, and passed as the allocator, when appropriate, to the ELEMENT_TYPE constructor.

template<
    class ELEMENT_TYPE,
    class ALLOC,
    class... ARGS>
bsl::shared_ptr<ELEMENT_TYPE>
allocate_shared(
    ALLOC* basicAllocator,
    ARGS&&... args)
requires !is_array<ELEMENT_TYPE>::value;

Return a shared_ptr object referring to and managing a new ARRAY_TYPE object, where ARRAY_TYPE is a unbounded array. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ARRAY_TYPE containing the specified numElements number of elements, and each element in the array is constructed from the specified value.

template<
    class ARRAY_TYPE,
    class ALLOC>
bsl::shared_ptr<ARRAY_TYPE>
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;

Return a shared_ptr object referring to and managing a new ARRAY_TYPE object, where ARRAY_TYPE is a unbounded array. The specified basicAllocator will be used to supply a single contiguous region of memory holding the returned shared pointer's internal representation and the new ARRAY_TYPE containing the specified numElements number of elements, and each element in the array is constructed from the specified value. If basicAllocator is 0, then the default allocator will be used instead.

template<
    class ARRAY_TYPE,
    class ALLOC>
bsl::shared_ptr<ARRAY_TYPE>
allocate_shared(
    ALLOC* basicAllocator,
    std::size_t numElements,
    remove_extent<ARRAY_TYPE>::type const& value)
requires is_unbounded_array<ARRAY_TYPE>::value;

Created with MrDocs