Quick Links:

bal | bbl | bdl | bsl

Static Public Member Functions

bslalg::ArrayDestructionPrimitives Struct Reference

#include <bslalg_arraydestructionprimitives.h>

List of all members.

Static Public Member Functions

template<class TARGET_TYPE , class ALLOCATOR >
static void destroy (TARGET_TYPE *begin, TARGET_TYPE *end, ALLOCATOR allocator, bsl::true_type)
template<class TARGET_TYPE , class ALLOCATOR >
static void destroy (TARGET_TYPE *begin, TARGET_TYPE *end, ALLOCATOR allocator, bsl::false_type)
template<class TARGET_TYPE >
static void destroy (TARGET_TYPE *begin, TARGET_TYPE *end, bsl::true_type)
template<class TARGET_TYPE >
static void destroy (TARGET_TYPE *begin, TARGET_TYPE *end, bsl::false_type)
template<class TARGET_TYPE , class ALLOCATOR >
static void destroy (TARGET_TYPE *begin, TARGET_TYPE *end, ALLOCATOR allocator)
template<class TARGET_TYPE >
static void destroy (TARGET_TYPE *begin, TARGET_TYPE *end)

Detailed Description

This struct provides a namespace for a suite of utility functions that destroy arrays of elements of the parameterized type TARGET_TYPE. Depending on the traits of TARGET_TYPE, the destructor may be invoked, or not (optimized away by no-op).

See Component bslalg_arraydestructionprimitives


Member Function Documentation

template<class TARGET_TYPE , class ALLOCATOR >
static void bslalg::ArrayDestructionPrimitives::destroy ( TARGET_TYPE *  begin,
TARGET_TYPE *  end,
ALLOCATOR  allocator,
bsl::true_type   
) [static]
template<class TARGET_TYPE , class ALLOCATOR >
static void bslalg::ArrayDestructionPrimitives::destroy ( TARGET_TYPE *  begin,
TARGET_TYPE *  end,
ALLOCATOR  allocator,
bsl::false_type   
) [static]

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 trivially 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 >
static void bslalg::ArrayDestructionPrimitives::destroy ( TARGET_TYPE *  begin,
TARGET_TYPE *  end,
bsl::true_type   
) [static]
template<class TARGET_TYPE >
static void bslalg::ArrayDestructionPrimitives::destroy ( TARGET_TYPE *  begin,
TARGET_TYPE *  end,
bsl::false_type   
) [static]

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 trivially 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 , class ALLOCATOR >
static void bslalg::ArrayDestructionPrimitives::destroy ( TARGET_TYPE *  begin,
TARGET_TYPE *  end,
ALLOCATOR  allocator 
) [static]

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 >
static void bslalg::ArrayDestructionPrimitives::destroy ( TARGET_TYPE *  begin,
TARGET_TYPE *  end 
) [static]

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).


The documentation for this struct was generated from the following file: