Return a shared_ptr managing a newly created object.

Synopses

Declared in <bslstl_sharedptr.h>

Return a shared_ptr managing a newly created object.

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 managing a newly created object.

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 managing a newly created object.

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 managing a newly created object.

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 managing a newly created object.

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 managing a newly created object.

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 managing a newly created object.

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 managing a newly created object.

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 managing a newly created object.

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 managing a newly created object.

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;

Return Value

shared pointer managing a newly created object

Parameters

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

Created with MrDocs