This struct provides a namespace for a suite of utility functions that are used to implement functions in ConstructionUtil. In particular, they provide overloads, resolved at compile-time, for various features (e.g., passing down the allocator to sub-elements of pair-like types) and optimizations (e.g., bypassing the call to the constructor for classes with trivial default and copy constructors). These functions should not be used outside this component.
See bslma_constructionutil
|
| template<class TARGET_TYPE , class ALLOCATOR > |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS >) |
| |
| template<class TARGET_TYPE , class ALLOCATOR > |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_TRAITS >) |
| |
| template<class TARGET_TYPE , class ALLOCATOR > |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_NIL_TRAITS >) |
| |
| template<class TARGET_TYPE , class ALLOCATOR , class ARG1 , class... ARGS> |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS >, ARG1 &argument1, ARGS &&... arguments) |
| |
| template<class TARGET_TYPE , class ALLOCATOR , class ARG1 , class... ARGS> |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_TRAITS >, ARG1 &argument1, ARGS &&... arguments) |
| |
| template<class TARGET_TYPE , class ALLOCATOR , class ARG1 , class... ARGS> |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_NIL_TRAITS >, ARG1 &argument1, ARGS &&... arguments) |
| |
| template<class TARGET_TYPE , class ALLOCATOR , class ARG1 , class... ARGS> |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_ARG_T_TRAITS >, BSLS_COMPILERFEATURES_FORWARD_REF(ARG1) argument1, ARGS &&... arguments) |
| |
| template<class TARGET_TYPE , class ALLOCATOR , class ARG1 , class... ARGS> |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_USES_ALLOCATOR_TRAITS >, BSLS_COMPILERFEATURES_FORWARD_REF(ARG1) argument1, ARGS &&... arguments) |
| |
| template<class TARGET_TYPE , class ALLOCATOR , class ARG1 , class... ARGS> |
| static void | construct (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_NIL_TRAITS >, BSLS_COMPILERFEATURES_FORWARD_REF(ARG1) argument1, ARGS &&... arguments) |
| |
| template<class TARGET_TYPE , class ALLOCATOR > |
| static void | destructiveMove (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_BITWISE_MOVABLE_TRAITS >, TARGET_TYPE *original) |
| |
| template<class TARGET_TYPE , class ALLOCATOR > |
| static void | destructiveMove (TARGET_TYPE *address, const ALLOCATOR &allocator, bsl::integral_constant< int, e_NIL_TRAITS >, TARGET_TYPE *original) |
| |
template<class TARGET_TYPE , class ALLOCATOR >
Construct a default instance of (template parameter) TARGET_TYPE at the specified address, passing to the constructor the specified allocator using the leading or trailing allocator convention, according to the specified integral_constant tag, or ignoring allocator in the e_NIL_TRAITS case. If the constructor throws, the memory at address is left in an unspecified state.
template<class TARGET_TYPE , class ALLOCATOR , class ARG1 , class... ARGS>
Construct an instance of (template parameter) TARGET_TYPE at the specified address forwarding to the constructor the specified argument1 and arguments arguments and passing the specified allocator using the leading or trailing allocator convention, according to the specified integral_constant tag, or ignoring allocator in the e_NIL_TRAITS case. If the constructor throws, the memory at address is left in an unspecified state.