Namespaces
Variants

std::scoped_allocator_adaptor<OuterAlloc,InnerAlloc...>:: outermost , outermost-construct , outermost-destroy

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
template < class Alloc >
/* unspecified */ /*outermost*/ ( Alloc && alloc = * this ) ;
(1) ( только для демонстрации* )
template < class T, class ... Args >
void /*outermost-construct*/ ( T * p, Args && ... args ) ;
(2) ( только для демонстрации* )
template < class T >
void /*outermost-destroy*/ ( T * p ) ;
(3) ( только для демонстрации* )

Эти вспомогательные шаблоны функций-членов только для экспозиции используются в функциях-членах construct() и destroy() .

1) Получает внешний аллокатор для alloc .
  • Если выражение alloc. outer_allocator ( ) корректно, возвращает outermost  ( alloc. outer_allocator ( ) ) .
  • Иначе возвращает alloc .
2,3) Создает или уничтожает объект, используя внешний аллокатор * this .
Для типа std:: allocator_traits < std:: remove_reference_t < decltype ( outermost  ( ) ) >> как outermost_traits :
2) Эквивалентно outermost_traits :: construct ( outermost  ( ) , p, std:: forward < Args > ( args ) ... ) ; .
3) Эквивалентно outermost_traits :: destroy ( outermost  ( ) , p ) ; .

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применяется к Поведение в опубликованной версии Корректное поведение
LWG 3116 C++11 условие рекурсии для outermost было " alloc
имеет функцию-член outer_allocator() "
изменено на "выражение
alloc. outer_allocator ( ) является валидным"

Смотрите также

[static]
создает объект в выделенной памяти
(шаблон функции)
[static]
уничтожает объект, хранящийся в выделенной памяти
(шаблон функции)