BloombergLP::bslalg::ArrayDestructionPrimitives::destroy

destroy overloads

Synopses

Declared in <bslalg_arraydestructionprimitives.h>

Destroy of the elements in the segment of an array of parameterized TARGET_TYPE beginning at the specified begin address and ending immediately before the specified end address. If begin == 0 and end == 0 this function has no effect. The behavior is undefined unless either (1) begin <= end, begin != 0, and end != 0, or (2) begin == 0 && end == 0. Note that this method does not deallocate any memory (except memory deallocated by the element destructor calls).

template<class TARGET_TYPE>
static
void
destroy(
    TARGET_TYPE* begin,
    TARGET_TYPE* end);
» more...

Destroy each TARGET_TYPE in [begin, end)] using the destructor.

template<class TARGET_TYPE>
static
void
destroy(
    TARGET_TYPE* begin,
    TARGET_TYPE* end,
    bsl::false_type);
» more...

Destroy each instance of TARGET_TYPE in the array beginning at the specified begin address and ending immediately before the specified end address. Elide the use of the destructor entirely if (template parameter) TARGET_TYPE is bitwise copyable, i.e. in the overload where the last argument (used only for overload resolution) if of type bsl::true_type.

template<class TARGET_TYPE>
static
void
destroy(
    TARGET_TYPE* begin,
    TARGET_TYPE* end,
    bsl::true_type);
» more...

Destroy the elements in the segment of an array of parameterized TARGET_TYPE beginning at the specified begin address and ending immediately before the specified end address, using the specified allocator. If begin == 0 and end == 0 this function has no effect. The behavior is undefined unless either (1) begin <= end, begin != 0, and end != 0, or (2) begin == 0 && end == 0. Note that this method does not deallocate any memory (except memory deallocated by the element destructor calls).

template<
    class TARGET_TYPE,
    class ALLOCATOR>
static
void
destroy(
    TARGET_TYPE* begin,
    TARGET_TYPE* end,
    ALLOCATOR allocator);
» more...

Same as the preceding destroy overload, for non-bitwise-copyable types.

template<
    class TARGET_TYPE,
    class ALLOCATOR>
static
void
destroy(
    TARGET_TYPE* begin,
    TARGET_TYPE* end,
    ALLOCATOR allocator,
    bsl::false_type);
» more...

Destroy each instance of TARGET_TYPE in the array beginning at the specified begin address and ending immediately before the specified end address, using the specified allocator. Elide the use of the destructor entirely if (template parameter) TARGET_TYPE is bitwise copyable, i.e., in the overload where the last argument (used only for overload resolution) is of type bsl::true_type.

template<
    class TARGET_TYPE,
    class ALLOCATOR>
static
void
destroy(
    TARGET_TYPE* begin,
    TARGET_TYPE* end,
    ALLOCATOR allocator,
    bsl::true_type);
» more...