Quick Links: |
#include <bslalg_scalarprimitives.h>
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) |
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
void bslalg::ScalarPrimitives::defaultConstruct | ( | TARGET_TYPE * | address, | |
bslma::Allocator * | allocator | |||
) | [inline, static] |
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.
void bslalg::ScalarPrimitives::copyConstruct | ( | TARGET_TYPE * | address, | |
const TARGET_TYPE & | original, | |||
bslma::Allocator * | allocator | |||
) | [inline, static] |
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.
void bslalg::ScalarPrimitives::moveConstruct | ( | TARGET_TYPE * | address, | |
TARGET_TYPE & | original, | |||
bslma::Allocator * | allocator | |||
) | [inline, static] |
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().
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.
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
bslma::Allocator * | allocator | |||
) | [inline, static] |
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
void * | allocator | |||
) | [inline, static] |
References BSLS_ASSERT_SAFE.
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
const ARG1 & | a1, | |||
bslma::Allocator * | allocator | |||
) | [inline, static] |
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
const ARG1 & | a1, | |||
void * | allocator | |||
) | [inline, static] |
References BSLS_ASSERT_SAFE.
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
const ARG1 & | a1, | |||
const ARG2 & | a2, | |||
bslma::Allocator * | allocator | |||
) | [inline, static] |
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
const ARG1 & | a1, | |||
const ARG2 & | a2, | |||
void * | allocator | |||
) | [inline, static] |
References BSLS_ASSERT_SAFE.
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
const ARG1 & | a1, | |||
const ARG2 & | a2, | |||
const ARG3 & | a3, | |||
bslma::Allocator * | allocator | |||
) | [inline, static] |
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
const ARG1 & | a1, | |||
const ARG2 & | a2, | |||
const ARG3 & | a3, | |||
void * | allocator | |||
) | [inline, static] |
References BSLS_ASSERT_SAFE.
void bslalg::ScalarPrimitives::construct | ( | TARGET_TYPE * | address, | |
const ARG1 & | a1, | |||
const ARG2 & | a2, | |||
const ARG3 & | a3, | |||
const ARG4 & | a4, | |||
bslma::Allocator * | allocator | |||
) | [inline, static] |
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.
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] |
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.
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] |
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.
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] |
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.
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] |
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.
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] |
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.
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] |
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.
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] |
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.
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] |
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.
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] |
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.
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] |
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.
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.
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.
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().