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.
Declared in <bslalg_scalarprimitives.h>
struct ScalarPrimitives;
| Name | Description |
|---|---|
construct | construct overloads |
copyConstruct | copyConstruct overloads |
defaultConstruct | defaultConstruct overloads |
destruct | destruct overloads |
destructiveMove | 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). |
moveConstruct | moveConstruct overloads |
swap | 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. |