Quick Links:

bal | bbl | bdl | bsl

Static Public Member Functions

bslalg::ScalarPrimitives Struct Reference

#include <bslalg_scalarprimitives.h>

List of all members.

Static Public Member Functions

template<class TARGET_TYPE >
static void defaultConstruct (TARGET_TYPE *address, bslma::Allocator *allocator)
template<class TARGET_TYPE >
static void defaultConstruct (TARGET_TYPE *address, void *allocator)
template<class TARGET_TYPE >
static void copyConstruct (TARGET_TYPE *address, const TARGET_TYPE &original, bslma::Allocator *allocator)
template<class TARGET_TYPE >
static void copyConstruct (TARGET_TYPE *address, const TARGET_TYPE &original, void *allocator)
template<class TARGET_TYPE >
static void moveConstruct (TARGET_TYPE *address, TARGET_TYPE &original, bslma::Allocator *allocator)
template<class TARGET_TYPE >
static void moveConstruct (TARGET_TYPE *address, TARGET_TYPE &original, void *allocator)
template<class TARGET_TYPE , class ALLOCATOR >
static void destructiveMove (TARGET_TYPE *address, TARGET_TYPE *original, ALLOCATOR *allocator)
template<class TARGET_TYPE >
static void construct (TARGET_TYPE *address, bslma::Allocator *allocator)
template<class TARGET_TYPE >
static void construct (TARGET_TYPE *address, void *allocator)
template<class TARGET_TYPE , class ARG1 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, const ARG11 &a11, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, const ARG11 &a11, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, const ARG11 &a11, const ARG12 &a12, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, const ARG11 &a11, const ARG12 &a12, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 , class ARG13 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, const ARG11 &a11, const ARG12 &a12, const ARG13 &a13, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 , class ARG13 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, const ARG11 &a11, const ARG12 &a12, const ARG13 &a13, void *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 , class ARG13 , class ARG14 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, const ARG11 &a11, const ARG12 &a12, const ARG13 &a13, const ARG14 &a14, bslma::Allocator *allocator)
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 , class ARG13 , class ARG14 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, const ARG3 &a3, const ARG4 &a4, const ARG5 &a5, const ARG6 &a6, const ARG7 &a7, const ARG8 &a8, const ARG9 &a9, const ARG10 &a10, const ARG11 &a11, const ARG12 &a12, const ARG13 &a13, const ARG14 &a14, void *allocator)
template<class TARGET_TYPE >
static void destruct (TARGET_TYPE *object, void *allocator)
template<class TARGET_TYPE >
static void destruct (TARGET_TYPE *object)
template<class LHS_TYPE , class RHS_TYPE >
static void swap (LHS_TYPE &lhs, RHS_TYPE &rhs)

Detailed Description

This struct provides a namespace for a suite of utility functions that operate on elements of a parameterized type TARGET_TYPE. If any of the ...Construct methods throws, then its target address is left uninitialized and there are no effects, unless otherwise mentioned in the documentation.

See Component bslalg_scalarprimitives


Member Function Documentation

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::defaultConstruct ( TARGET_TYPE *  address,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::defaultConstruct ( TARGET_TYPE *  address,
void *  allocator 
) [inline, static]

Build a default-initialized object of the parameterized TARGET_TYPE in the uninitialized memory at the specified address, as if by using the TARGET_TYPE default constructor. If the specified allocator is based on bslma::Allocator and TARGET_TYPE takes an allocator constructor argument, then allocator is passed to the default constructor. If the constructor throws, the address is left in an uninitialized state. Note that this operation may bypass the constructor and simply fill memory with 0 if TARGET_TYPE has the trivial default constructor trait and does not use bslma::Allocator.

References BSLS_ASSERT_SAFE, bslalg::ScalarPrimitives_Imp::defaultConstruct(), bslalg::ScalarPrimitives_Imp::e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS, and bslalg::ScalarPrimitives_Imp::e_NIL_TRAITS.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::copyConstruct ( TARGET_TYPE *  address,
const TARGET_TYPE &  original,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::copyConstruct ( TARGET_TYPE *  address,
const TARGET_TYPE &  original,
void *  allocator 
) [inline, static]

Build an object of the parameterized TARGET_TYPE from the specified original object of the same TARGET_TYPE in the uninitialized memory at the specified address, as if by using the copy constructor of TARGET_TYPE. If the specified allocator is based on bslma::Allocator and TARGET_TYPE takes an allocator constructor argument, then allocator is passed to the copy constructor. If the constructor throws, the address is left in an uninitialized state. Note that bit-wise copy will be used if TARGET_TYPE has the bit-wise copyable trait.

References BSLS_ASSERT_SAFE, bslalg::ScalarPrimitives_Imp::copyConstruct(), bslalg::ScalarPrimitives_Imp::e_BITWISE_COPYABLE_TRAITS, and bslalg::ScalarPrimitives_Imp::e_NIL_TRAITS.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::moveConstruct ( TARGET_TYPE *  address,
TARGET_TYPE &  original,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::moveConstruct ( TARGET_TYPE *  address,
TARGET_TYPE &  original,
void *  allocator 
) [inline, static]

Build an object of the parameterized TARGET_TYPE from the specified original object of the same TARGET_TYPE in the uninitialized memory at the specified address, as if by using the move constructor of TARGET_TYPE. If the specified allocator is based on bslma::Allocator and TARGET_TYPE takes an allocator constructor argument, then allocator is passed to the move constructor. If the constructor throws, the address is left in an uninitialized state. Note that bit-wise copy will be used if TARGET_TYPE has the bit-wise copyable trait (not the bit-wise moveable trait, which indicates a destructive bit-wise move). In C++03 mode, moveConstruct has the same effect as copyConstruct.

References BSLS_ASSERT_SAFE, bslalg::ScalarPrimitives_Imp::e_BITWISE_COPYABLE_TRAITS, bslalg::ScalarPrimitives_Imp::e_NIL_TRAITS, and bslalg::ScalarPrimitives_Imp::moveConstruct().

template<class TARGET_TYPE , class ALLOCATOR >
void bslalg::ScalarPrimitives::destructiveMove ( TARGET_TYPE *  address,
TARGET_TYPE *  original,
ALLOCATOR *  allocator 
) [inline, static]

Move the state of the object of the parameterized TARGET_TYPE from the object at the specified original address to the uninitialized memory at the specified address, as if by move constructing and then destroying the original. If the parameterized ALLOCATOR is based on bslma::Allocator and TARGET_TYPE takes an allocator constructor argument, then the moved object uses the specified allocator to supply memory. If the move constructor throws, the address is left in an uninitialized state and the original is left unchanged. The behavior is undefined unless the original object also uses the allocator. Note that bit-wise copy will be used and allocator will be ignored if TARGET_TYPE' has the bit-wise moveable trait. Note that, if ALLOCATOR is not based on bslma::Allocator, then the allocator argument is ignored; the allocator used by the resulting object at address might or might not be the same as the allocator used by original, depending on whether TARGET_TYPE has a move constructor (C++11).

References BSLS_ASSERT_SAFE, bslalg::ScalarPrimitives_Imp::destructiveMove(), bslalg::ScalarPrimitives_Imp::e_BITWISE_MOVEABLE_TRAITS, and bslalg::ScalarPrimitives_Imp::e_NIL_TRAITS.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
const ARG11 &  a11,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
const ARG11 &  a11,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
const ARG11 &  a11,
const ARG12 &  a12,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
const ARG11 &  a11,
const ARG12 &  a12,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 , class ARG13 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
const ARG11 &  a11,
const ARG12 &  a12,
const ARG13 &  a13,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 , class ARG13 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
const ARG11 &  a11,
const ARG12 &  a12,
const ARG13 &  a13,
void *  allocator 
) [inline, static]

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 , class ARG13 , class ARG14 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
const ARG11 &  a11,
const ARG12 &  a12,
const ARG13 &  a13,
const ARG14 &  a14,
bslma::Allocator allocator 
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 , class ARG9 , class ARG10 , class ARG11 , class ARG12 , class ARG13 , class ARG14 >
void bslalg::ScalarPrimitives::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
const ARG6 &  a6,
const ARG7 &  a7,
const ARG8 &  a8,
const ARG9 &  a9,
const ARG10 &  a10,
const ARG11 &  a11,
const ARG12 &  a12,
const ARG13 &  a13,
const ARG14 &  a14,
void *  allocator 
) [inline, static]

Build an object of the parameterized TARGET_TYPE in the uninitialized memory at the specified address. Use the TARGET_TYPE constructor TARGET_TYPE(ARG1 const&, ...) taking the specified a1 up to a14 arguments of the respective parameterized ARG1 up to ARG14 types. If the specified allocator is based on bslma::Allocator and TARGET_TYPE takes an allocator constructor argument, then allocator is passed to the TARGET_TYPE constructor in the manner appropriate to the traits bslmf::UsesAllocatorArgT and blsma::UsesBslmaAllocator.

References BSLS_ASSERT_SAFE.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::destruct ( TARGET_TYPE *  object,
void *  allocator 
) [inline, static]

DEPRECATED: Use bslma::DestructionUtil::destroy without an allocator argument instead.

Destroy the specified object of the parameterized TARGET_TYPE, as if by calling the TARGET_TYPE destructor, but do not deallocate the memory occupied by object. Note that the destructor may deallocate other memory owned by object. Also note that this function is a no-op if the TARGET_TYPE has the trivial destructor trait. Further note that the specified allocator is not used.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives::destruct ( TARGET_TYPE *  object  )  [inline, static]

DEPRECATED: Use bslma::DestructionUtil::destroy instead.

Destroy the specified object of the parameterized TARGET_TYPE, as if by calling the TARGET_TYPE destructor, but do not deallocate the memory occupied by object. Note that the destructor may deallocate other memory owned by object. Also note that this function is a no-op if the TARGET_TYPE has the trivial destructor trait.

template<class LHS_TYPE , class RHS_TYPE >
void bslalg::ScalarPrimitives::swap ( LHS_TYPE &  lhs,
RHS_TYPE &  rhs 
) [static]

Swap the contents of the specified lhs of the parameterized LHS_TYPE with those of the specified rhs of the parameterized RHS_TYPE. Note that, if LHS_TYPE and RHS_TYPE are the same type and that type has the bit-wise moveable trait but does not use bslma allocators, the swap can be performed using a three-way bit-wise move.

References bslalg::ScalarPrimitives_Imp::e_BITWISE_MOVEABLE_TRAITS, bslalg::ScalarPrimitives_Imp::e_NIL_TRAITS, and bslalg::ScalarPrimitives_Imp::swap().


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