libstdc++
Memory
Collaboration diagram for Memory:

Topics

 Allocators
 
 Pointer Abstractions
 
 Pointer Safety and Garbage Collection
 
 Polymorphic memory resources
 

Files

file  memory
 

Functions

void * std::align (size_t __align, size_t __size, void *&__ptr, size_t &__space) noexcept
 
template<size_t _Align, class _Tp>
constexpr _Tp * std::assume_aligned (_Tp *__ptr) noexcept
 
template<typename _InputIterator, typename _ForwardIterator>
_ForwardIterator std::uninitialized_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
 
template<typename _InputIterator, typename _Size, typename _ForwardIterator>
_ForwardIterator std::uninitialized_copy_n (_InputIterator __first, _Size __n, _ForwardIterator __result)
 
template<typename _ForwardIterator>
void std::uninitialized_default_construct (_ForwardIterator __first, _ForwardIterator __last)
 
template<typename _ForwardIterator, typename _Size>
_ForwardIterator std::uninitialized_default_construct_n (_ForwardIterator __first, _Size __count)
 
template<typename _ForwardIterator, typename _Tp>
void std::uninitialized_fill (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__x)
 
template<typename _ForwardIterator, typename _Size, typename _Tp>
_ForwardIterator std::uninitialized_fill_n (_ForwardIterator __first, _Size __n, const _Tp &__x)
 
template<typename _InputIterator, typename _ForwardIterator>
_ForwardIterator std::uninitialized_move (_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
 
template<typename _InputIterator, typename _Size, typename _ForwardIterator>
pair< _InputIterator, _ForwardIterator > std::uninitialized_move_n (_InputIterator __first, _Size __count, _ForwardIterator __result)
 
template<typename _ForwardIterator>
void std::uninitialized_value_construct (_ForwardIterator __first, _ForwardIterator __last)
 
template<typename _ForwardIterator, typename _Size>
_ForwardIterator std::uninitialized_value_construct_n (_ForwardIterator __first, _Size __count)
 

Detailed Description

Components for memory allocation, deallocation, and management.

Function Documentation

◆ align()

void * std::align ( size_t __align,
size_t __size,
void *& __ptr,
size_t & __space )
inlinenoexcept

Fit aligned storage in buffer.

This function tries to fit __size bytes of storage with alignment __align into the buffer __ptr of size __space bytes. If such a buffer fits then __ptr is changed to point to the first byte of the aligned storage and __space is reduced by the bytes used for alignment.

C++11 20.6.5 [ptr.align]

Parameters
__alignA fundamental or extended alignment value.
__sizeSize of the aligned storage required.
__ptrPointer to a buffer of __space bytes.
__spaceSize of the buffer pointed to by __ptr.
Returns
the updated pointer if the aligned storage fits, otherwise nullptr.

Definition at line 60 of file align.h.

◆ assume_aligned()

template<size_t _Align, class _Tp>
_Tp * std::assume_aligned ( _Tp * __ptr)
nodiscardconstexprnoexcept

Inform the compiler that a pointer is aligned.

Template Parameters
_AlignAn alignment value (i.e. a power of two)
_TpAn object type
Parameters
__ptrA pointer that is aligned to _Align

C++20 20.10.6 [ptr.align]

Definition at line 90 of file align.h.

◆ uninitialized_copy()

template<typename _InputIterator, typename _ForwardIterator>
_ForwardIterator std::uninitialized_copy ( _InputIterator __first,
_InputIterator __last,
_ForwardIterator __result )
inline

Copies the range [first,last) into result.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__resultA forward iterator.
Returns
__result + (__last - __first)

Like std::copy, but does not require an initialized output range.

Definition at line 251 of file stl_uninitialized.h.

References to_address().

Referenced by __gnu_parallel::parallel_sort_mwms_pu(), and uninitialized_move().

◆ uninitialized_copy_n()

template<typename _InputIterator, typename _Size, typename _ForwardIterator>
_ForwardIterator std::uninitialized_copy_n ( _InputIterator __first,
_Size __n,
_ForwardIterator __result )
inline

Copies the range [first,first+n) into result.

Parameters
__firstAn input iterator.
__nThe number of elements to copy.
__resultAn output iterator.
Returns
__result + __n
Since
C++11

Like copy_n(), but does not require an initialized output range.

Definition at line 1174 of file stl_uninitialized.h.

References __iterator_category().

◆ uninitialized_default_construct()

template<typename _ForwardIterator>
void std::uninitialized_default_construct ( _ForwardIterator __first,
_ForwardIterator __last )
inline

Default-initializes objects in the range [first,last).

Parameters
__firstA forward iterator.
__lastA forward iterator.
Since
C++17

Definition at line 1203 of file stl_uninitialized.h.

◆ uninitialized_default_construct_n()

template<typename _ForwardIterator, typename _Size>
_ForwardIterator std::uninitialized_default_construct_n ( _ForwardIterator __first,
_Size __count )
inline

Default-initializes objects in the range [first,first+count).

Parameters
__firstA forward iterator.
__countThe number of objects to construct.
Returns
__first + __count
Since
C++17

Definition at line 1219 of file stl_uninitialized.h.

◆ uninitialized_fill()

template<typename _ForwardIterator, typename _Tp>
void std::uninitialized_fill ( _ForwardIterator __first,
_ForwardIterator __last,
const _Tp & __x )
inline

Copies the value x into the range [first,last).

Parameters
__firstA forward iterator.
__lastA forward iterator.
__xThe source value.
Returns
Nothing.

Like std::fill, but does not require an initialized output range.

Definition at line 412 of file stl_uninitialized.h.

References to_address().

◆ uninitialized_fill_n()

template<typename _ForwardIterator, typename _Size, typename _Tp>
_ForwardIterator std::uninitialized_fill_n ( _ForwardIterator __first,
_Size __n,
const _Tp & __x )
inline

Copies the value x into the range [first,first+n).

Parameters
__firstA forward iterator.
__nThe number of copies to make.
__xThe source value.
Returns
__first + __n.

Like std::fill_n, but does not require an initialized output range.

Definition at line 546 of file stl_uninitialized.h.

References to_address().

◆ uninitialized_move()

template<typename _InputIterator, typename _ForwardIterator>
_ForwardIterator std::uninitialized_move ( _InputIterator __first,
_InputIterator __last,
_ForwardIterator __result )
inline

Move-construct from the range [first,last) into result.

Parameters
__firstAn input iterator.
__lastAn input iterator.
__resultAn output iterator.
Returns
__result + (__first - __last)
Since
C++17

Definition at line 1265 of file stl_uninitialized.h.

References uninitialized_copy().

◆ uninitialized_move_n()

template<typename _InputIterator, typename _Size, typename _ForwardIterator>
pair< _InputIterator, _ForwardIterator > std::uninitialized_move_n ( _InputIterator __first,
_Size __count,
_ForwardIterator __result )
inline

Move-construct from the range [first,first+count) into result.

Parameters
__firstAn input iterator.
__countThe number of objects to initialize.
__resultAn output iterator.
Returns
__result + __count
Since
C++17

Definition at line 1284 of file stl_uninitialized.h.

◆ uninitialized_value_construct()

template<typename _ForwardIterator>
void std::uninitialized_value_construct ( _ForwardIterator __first,
_ForwardIterator __last )
inline

Value-initializes objects in the range [first,last).

Parameters
__firstA forward iterator.
__lastA forward iterator.
Since
C++17

Definition at line 1233 of file stl_uninitialized.h.

◆ uninitialized_value_construct_n()

template<typename _ForwardIterator, typename _Size>
_ForwardIterator std::uninitialized_value_construct_n ( _ForwardIterator __first,
_Size __count )
inline

Value-initializes objects in the range [first,first+count).

Parameters
__firstA forward iterator.
__countThe number of objects to construct.
Returns
__result + __count
Since
C++17

Definition at line 1249 of file stl_uninitialized.h.