Spec-Zone.ru › C++

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

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() корректно»

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/scoped_allocator_adaptor/helpers

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API