|
| 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) |
| |
| static void | scribbleOverMemory (void *ptr, size_t numBytes) |
| |
| 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) |
| |
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).
template<class TARGET_TYPE >
| void bslalg::ArrayDestructionPrimitives::destroy |
( |
TARGET_TYPE * |
begin, |
|
|
TARGET_TYPE * |
end |
|
) |
| |
|
inlinestatic |
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 , class ALLOCATOR >
| void bslalg::ArrayDestructionPrimitives::destroy |
( |
TARGET_TYPE * |
begin, |
|
|
TARGET_TYPE * |
end, |
|
|
ALLOCATOR |
allocator |
|
) |
| |
|
inlinestatic |
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 >
| void bslalg::ArrayDestructionPrimitives::destroy |
( |
TARGET_TYPE * |
begin, |
|
|
TARGET_TYPE * |
end, |
|
|
ALLOCATOR |
allocator, |
|
|
bsl::true_type |
|
|
) |
| |
|
inlinestatic |
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.