Quick Links:

bal | bbl | bdl | bsl

Public Types | Static Public Member Functions

bslalg::ScalarPrimitives_Imp Struct Reference

#include <bslalg_scalarprimitives.h>

List of all members.

Public Types

enum  {
  e_USES_ALLOCATOR_ARG_T_TRAITS = 5, e_USES_BSLMA_ALLOCATOR_TRAITS = 4, e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS = 3, e_BITWISE_COPYABLE_TRAITS = 2,
  e_BITWISE_MOVEABLE_TRAITS = 1, e_NIL_TRAITS = 0
}

Static Public Member Functions

template<class TARGET_TYPE >
static TARGET_TYPE * unconst (const TARGET_TYPE *pointer)
template<class TARGET_TYPE >
static void defaultConstruct (TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
template<class TARGET_TYPE >
static void defaultConstruct (TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
template<class TARGET_TYPE >
static void defaultConstruct (TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS > *)
template<class TARGET_TYPE >
static void defaultConstruct (TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE >
static void defaultConstruct (TARGET_TYPE *address, bsl::integral_constant< int, e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS > *)
template<class TARGET_TYPE >
static void defaultConstruct (TARGET_TYPE *address, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE >
static void copyConstruct (TARGET_TYPE *address, const TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
template<class TARGET_TYPE >
static void copyConstruct (TARGET_TYPE *address, const TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
template<class TARGET_TYPE >
static void copyConstruct (TARGET_TYPE *address, const TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *)
template<class TARGET_TYPE >
static void copyConstruct (TARGET_TYPE *address, const TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE >
static void copyConstruct (TARGET_TYPE *address, const TARGET_TYPE &original, bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *)
template<class TARGET_TYPE >
static void copyConstruct (TARGET_TYPE *address, const TARGET_TYPE &original, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE >
static void moveConstruct (TARGET_TYPE *address, TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
template<class TARGET_TYPE >
static void moveConstruct (TARGET_TYPE *address, TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
template<class TARGET_TYPE >
static void moveConstruct (TARGET_TYPE *address, TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *)
template<class TARGET_TYPE >
static void moveConstruct (TARGET_TYPE *address, TARGET_TYPE &original, bslma::Allocator *allocator, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE >
static void moveConstruct (TARGET_TYPE *address, TARGET_TYPE &original, bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *)
template<class TARGET_TYPE >
static void moveConstruct (TARGET_TYPE *address, TARGET_TYPE &original, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE , class ALLOCATOR >
static void destructiveMove (TARGET_TYPE *address, TARGET_TYPE *original, ALLOCATOR *allocator, bsl::integral_constant< int, e_BITWISE_MOVEABLE_TRAITS > *)
template<class TARGET_TYPE , class ALLOCATOR >
static void destructiveMove (TARGET_TYPE *address, TARGET_TYPE *original, ALLOCATOR *allocator, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE , class ARG1 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, bslma::Allocator *allocator, bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *)
template<class TARGET_TYPE >
static void construct (TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
template<class TARGET_TYPE , class ARG1 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
template<class TARGET_TYPE , class ARG1 , class ARG2 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
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, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *)
template<class TARGET_TYPE >
static void construct (TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
template<class TARGET_TYPE , class ARG1 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
template<class TARGET_TYPE , class ARG1 , class ARG2 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, bslma::Allocator *allocator, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
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, bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *)
template<class TARGET_TYPE >
static void construct (TARGET_TYPE *address, bslma::Allocator *allocator, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE , class ARG1 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, bslma::Allocator *allocator, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class TARGET_TYPE , class ARG1 , class ARG2 >
static void construct (TARGET_TYPE *address, const ARG1 &a1, const ARG2 &a2, bslma::Allocator *allocator, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
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, bsl::integral_constant< int, e_NIL_TRAITS > *)
template<class LHS_TYPE , class RHS_TYPE >
static void swap (LHS_TYPE &lhs, RHS_TYPE &rhs, bsl::integral_constant< int, e_BITWISE_MOVEABLE_TRAITS > *)
template<class LHS_TYPE , class RHS_TYPE >
static void swap (LHS_TYPE &lhs, RHS_TYPE &rhs, bsl::integral_constant< int, e_NIL_TRAITS > *)

Detailed Description

This struct provides a namespace for a suite of utility functions that operate on arrays of elements of a parameterized type TARGET_TYPE. These utility functions are only for the purpose of implementing those in the ScalarPrimitives utility, and should not be used outside this component.

See Component bslalg_scalarprimitives


Member Enumeration Documentation

anonymous enum

These constants are used in the overloads below, when the last argument is of type bsl::integral_constant<int, N> *, indicating that TARGET_TYPE has the traits for which the enumerator equal to N is named.

Enumerator:
e_USES_ALLOCATOR_ARG_T_TRAITS 

Implies USES_BSLMA_ALLOCATOR.

e_USES_BSLMA_ALLOCATOR_TRAITS 
e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS 
e_BITWISE_COPYABLE_TRAITS 
e_BITWISE_MOVEABLE_TRAITS 
e_NIL_TRAITS 

Member Function Documentation

template<class TARGET_TYPE >
TARGET_TYPE * bslalg::ScalarPrimitives_Imp::unconst ( const TARGET_TYPE *  pointer  )  [inline, static]

Return the const-unqualified value of the specified pointer. This function resolves into a const_cast and therefore has no runtime cost, it exists only for template argument deduction.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::defaultConstruct ( TARGET_TYPE *  address,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::defaultConstruct ( TARGET_TYPE *  address,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::defaultConstruct ( TARGET_TYPE *  address,
bslma::Allocator allocator,
bsl::integral_constant< int, e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS > *   
) [inline, static]

References defaultConstruct().

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::defaultConstruct ( TARGET_TYPE *  address,
bslma::Allocator allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]

Build a TARGET_TYPE object in a default state in the uninitialized memory at the specified address, using the specified allocator to supply memory if TARGET_TYPE uses bslma allocators. Use the default constructor of the parameterized TARGET_TYPE, or memset to 0 if TARGET_TYPE has a trivial default constructor. The last argument is for traits overloading resolution only and its value is ignored.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::defaultConstruct ( TARGET_TYPE *  address,
bsl::integral_constant< int, e_HAS_TRIVIAL_DEFAULT_CTOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::defaultConstruct ( TARGET_TYPE *  address,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]

Build a TARGET_TYPE object in a default state in the uninitialized memory at the specified address. Use the default constructor of the parameterized TARGET_TYPE, or memset to 0 if TARGET_TYPE has a trivial default constructor. The last argument is for traits overloading resolution only and its value is ignored.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::copyConstruct ( TARGET_TYPE *  address,
const TARGET_TYPE &  original,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::copyConstruct ( TARGET_TYPE *  address,
const TARGET_TYPE &  original,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::copyConstruct ( TARGET_TYPE *  address,
const TARGET_TYPE &  original,
bslma::Allocator allocator,
bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *   
) [inline, static]

References BSLS_UTIL_ADDRESSOF.

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

Build in the uninitialized memory at the specified address an object of the parameterized TARGET_TYPE that is a copy of the specified original object of the same TARGET_TYPE, using the specified allocator to supply memory. Use the copy constructor of the TARGET_TYPE, or a bit-wise copy if TARGET_TYPE is a bit-wise copyable type. The last argument is for traits overloading resolution only and its value is ignored. Note that a bit-wise copy is appropriate only if TARGET_TYPE does not take allocators.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::copyConstruct ( TARGET_TYPE *  address,
const TARGET_TYPE &  original,
bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *   
) [inline, static]

References BSLS_UTIL_ADDRESSOF.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::copyConstruct ( TARGET_TYPE *  address,
const TARGET_TYPE &  original,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]

Build in the uninitialized memory at the specified address an object of the parameterized TARGET_TYPE that is a copy of the specified original object of the same TARGET_TYPE. Use the copy constructor of the TARGET_TYPE, or a bit-wise copy if TARGET_TYPE is a bit-wise copyable type. The last argument is for traits overloading resolution only and its value is ignored. Note that a bit-wise copy is appropriate only if TARGET_TYPE does not take allocators.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::moveConstruct ( TARGET_TYPE *  address,
TARGET_TYPE &  original,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::moveConstruct ( TARGET_TYPE *  address,
TARGET_TYPE &  original,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::moveConstruct ( TARGET_TYPE *  address,
TARGET_TYPE &  original,
bslma::Allocator allocator,
bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *   
) [inline, static]

References BSLS_UTIL_ADDRESSOF.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::moveConstruct ( TARGET_TYPE *  address,
TARGET_TYPE &  original,
bslma::Allocator allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]

Build in the uninitialized memory at the specified address an object of the parameterized TARGET_TYPE that is a move of the specified original object of the same TARGET_TYPE, using the specified allocator to supply memory. Use the move constructor of the TARGET_TYPE, or a bit-wise copy if TARGET_TYPE is a bit-wise copyable type (not a bit-wise moveable type, which indicates a destructive bit-wise move). The last argument is for traits overloading resolution only and its value is ignored. Note that a bit-wise copy is used only if TARGET_TYPE does not take allocators. In C++03 mode, moveConstruct has the same effect as copyConstruct.

References bslmf::MovableRefUtil::move().

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::moveConstruct ( TARGET_TYPE *  address,
TARGET_TYPE &  original,
bsl::integral_constant< int, e_BITWISE_COPYABLE_TRAITS > *   
) [inline, static]

References BSLS_UTIL_ADDRESSOF.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::moveConstruct ( TARGET_TYPE *  address,
TARGET_TYPE &  original,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]

Build in the uninitialized memory at the specified address an object of the parameterized TARGET_TYPE that is a move of the specified original object of the same TARGET_TYPE. Use the move constructor of the TARGET_TYPE, or a bit-wise copy if TARGET_TYPE is a bit-wise copyable type (bit-wise copyable, NOT bit-wise moveable, which relates to destructive bit-wise move). The last argument is for traits overloading resolution only and its value is ignored. In C++03 mode, moveConstruct has the same effect as copyConstruct.

References bslmf::MovableRefUtil::move().

template<class TARGET_TYPE , class ALLOCATOR >
void bslalg::ScalarPrimitives_Imp::destructiveMove ( TARGET_TYPE *  address,
TARGET_TYPE *  original,
ALLOCATOR *  allocator,
bsl::integral_constant< int, e_BITWISE_MOVEABLE_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ALLOCATOR >
void bslalg::ScalarPrimitives_Imp::destructiveMove ( TARGET_TYPE *  address,
TARGET_TYPE *  original,
ALLOCATOR *  allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]

Build a copy of the specified original in the uninitialized memory at the specified address. Use the copy constructor of the parameterized TARGET_TYPE (or a bit-wise copy if TARGET_TYPE is bit-wise moveable). If TARGET_TYPE is not bit-wise moveable, also destroy the original. The last argument is for traits overloading resolution only and its value is ignored. Note that the specified allocator is not used.

References moveConstruct().

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

Build an object from the specified a1 in the uninitialized memory at the specified address. The specified allocator is ignored. Use the parameterized TARGET_TYPE constructor with the signature TARGET_TYPE(ARG1 const&) or bitwise copy for non-fundamental types. The traits argument is for overloading resolution only and is ignored. Note that this function is called only when ARG1 is the same as TARGET_TYPE.

References BSLMF_ASSERT(), and BSLS_UTIL_ADDRESSOF.

Referenced by bslalg::ScalarPrimitives::construct().

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

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

References bsl::allocator_arg.

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

References bsl::allocator_arg.

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

References bsl::allocator_arg.

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

References bsl::allocator_arg.

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

References bsl::allocator_arg.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 >
void bslalg::ScalarPrimitives_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 >
void bslalg::ScalarPrimitives_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 , class ARG8 >
void bslalg::ScalarPrimitives_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

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_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

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_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

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_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

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_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

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_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

References bsl::allocator_arg.

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_Imp::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,
bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS > *   
) [inline, static]

Build an object of the parameterized TARGET_TYPE in the uninitialized memory at the specified address, passing the specified a1 up to a14 arguments of the corresponding parameterized ARG1 up to ARG14 types to the TARGET_TYPE constructor with the signature 'TARGET_TYPE(bsl::allocator_arg_t, bslma::Allocator *, const ARG1&, ...)', and pass the specified allocator as the second argument. The last argument is for overloading resolution only and its value is ignored.

References bsl::allocator_arg.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
bslma::Allocator allocator,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 >
void bslalg::ScalarPrimitives_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 >
void bslalg::ScalarPrimitives_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_USES_BSLMA_ALLOCATOR_TRAITS > *   
) [inline, static]

Build an object of the parameterized TARGET_TYPE in the uninitialized memory at the specified address, passing the specified a1 up to a14 arguments of the corresponding parameterized ARG1 up to ARG14 types to the TARGET_TYPE constructor with the signature TARGET_TYPE(ARG1 const&, ..., bslma::Allocator *), and pass the specified allocator in the last position. The last argument is for overloading resolution only and its value is ignored.

template<class TARGET_TYPE >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
bslma::Allocator allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
bslma::Allocator allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
bslma::Allocator allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
bslma::Allocator allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
bslma::Allocator allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 >
void bslalg::ScalarPrimitives_Imp::construct ( TARGET_TYPE *  address,
const ARG1 &  a1,
const ARG2 &  a2,
const ARG3 &  a3,
const ARG4 &  a4,
const ARG5 &  a5,
bslma::Allocator allocator,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 >
void bslalg::ScalarPrimitives_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]
template<class TARGET_TYPE , class ARG1 , class ARG2 , class ARG3 , class ARG4 , class ARG5 , class ARG6 , class ARG7 >
void bslalg::ScalarPrimitives_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [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_Imp::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,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [inline, static]

Build an object of the parameterized TARGET_TYPE in the uninitialized memory at the specified address, passing the specified a1 up to a14 arguments of the corresponding parameterized ARG1 up to ARG14 types to the TARGET_TYPE constructor with the signature TARGET_TYPE(ARG1 const&, ...). The specified allocator is not passed through to the TARGET_TYPE constructor. The last argument is for overloading resolution only and is ignored.

template<class LHS_TYPE , class RHS_TYPE >
void bslalg::ScalarPrimitives_Imp::swap ( LHS_TYPE &  lhs,
RHS_TYPE &  rhs,
bsl::integral_constant< int, e_BITWISE_MOVEABLE_TRAITS > *   
) [static]
template<class LHS_TYPE , class RHS_TYPE >
void bslalg::ScalarPrimitives_Imp::swap ( LHS_TYPE &  lhs,
RHS_TYPE &  rhs,
bsl::integral_constant< int, e_NIL_TRAITS > *   
) [static]

Swap the contents of the specified lhs object of the parameterized LHS_TYPE with the specified rhs object of the parameterized RHS_TYPE. Use a three-way bit-wise copy (with a temporary uninitialized buffer), if LHS_TYPE and RHS_TYPE are the same bit-wise moveable type, and a three-way assignment with a temporary if not. The last argument is for overloading resolution only and is ignored.


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