bsl::allocate_shared

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;
» more...

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;
» more...

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;
» more...

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;
» more...

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;
» more...

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;
» more...

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;
» more...

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;
» more...

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;
» more...

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;
» more...

Return Value

shared pointer managing a newly created object

Parameters

NameDescription
basicAllocatorallocator used to supply memory
numElementsnumber of elements in the unbounded array
valuevalue used to initialize each array element
argsconstructor arguments forwarded to the new object