Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::pmr::p...ic_allocator(3) C++ Standard Libarystd::pmr::p...ic_allocator(3)

NAME
       std::pmr::polymorphic_allocator - std::pmr::polymorphic_allocator

Synopsis
	  Defined in header <memory_resource>
	  template< class T >		       (since C++17)
	  class	polymorphic_allocator;	       (until C++20)
	  template< class T = std::byte	>      (since C++20)
	  class	polymorphic_allocator;

	  The  class  template std::pmr::polymorphic_allocator is an Allocator
       which exhibits
	  different allocation	behavior  depending  upon  the	std::pmr::mem-
       ory_resource from
	  which	it is constructed. Since memory_resource uses runtime polymor-
       phism to	manage
	  allocations,	different container instances with polymorphic_alloca-
       tor as their
	  static allocator type	are interoperable, but can behave as  if  they
       had different
	  allocator types.

	  All specializations of polymorphic_allocator meet the	allocator com-
       pleteness
	  requirements.

	  The polymorphic_allocator::construct member function does uses-allo-
       cator
	  construction,	 so  that the elements of a container using a polymor-
       phic_allocator will
	  use that same	allocator for their own	allocations. For example, a
	  std::pmr::vector<std::pmr::string> will use the same memory_resource
       for the
	  vector's storage and each string's storage.

	  For non-polymorphic allocators, similar propagation can be  achieved
       with the	help of
	  std::scoped_allocator_adaptor.

Member types
	  Member type definition
	  value_type  T

Member functions
	  constructor				constructs a polymorphic_allo-
       cator
						(public	member function)
	  destructor				implicitly declared destructor
	  (implicitly declared)			(public	member function)
	  operator=				 copy  assignment  operator is
       deleted
	  [deleted]				(public	member function)

Public member functions
	  allocate				allocate memory
						(public	member function)
	  deallocate				deallocate memory
						(public	member function)
	  construct				constructs an object in	 allo-
       cated storage
						(public	member function)
	  destroy				 destroys  an  object in allo-
       cated storage
	  (deprecated in C++20)			(public	member function)
	  (undeprecated	in C++26)
	  allocate_bytes			allocate  raw  aligned	memory
       from the
	  (C++20)				underlying resource
						(public	member function)
	  deallocate_bytes			 free raw memory obtained from
       allocate_bytes
	  (C++20)				(public	member function)
	  allocate_object			allocates raw memory  suitable
       for an object or
	  (C++20)				an array
						(public	member function)
	  deallocate_object			 frees	raw memory obtained by
       allocate_object
	  (C++20)				(public	member function)
	  new_object				allocates  and	constructs  an
       object
	  (C++20)				(public	member function)
	  delete_object				 destroys  and	deallocates an
       object
	  (C++20)				(public	member function)
						create a new polymorphic_allo-
       cator for use by
	  select_on_container_copy_construction	a container's copy constructor
						(public	member function)
						returns	a pointer to  the  un-
       derlying	memory
	  resource				resource
						(public	member function)

Non-member functions
	  operator==	     compare two polymorphic_allocators
	  operator!=	     (function)
	  (removed in C++20)

Notes
	  polymorphic_allocator	 does  not propagate on	container copy assign-
       ment, move
	  assignment, or swap. As a result,  move  assignment  of  a  polymor-
       phic_allocator-using
	  container  can  throw,  and swapping two polymorphic_allocator-using
       containers whose
	  allocators do	not compare equal results in undefined behavior.

		Feature-test macro	   Value     Std		  Fea-
       ture
	  __cpp_lib_polymorphic_allocator  201902L  (C++20) std::pmr::polymor-
       phic_allocator<>	as
							  a vocabulary type

See also
	  memory_resource an abstract interface	for classes  that  encapsulate
       memory resources
	  (C++17)	  (class)

http://cppreference.com		  2024.06.10	 std::pmr::p...ic_allocator(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::pmr::polymorphic_allocator&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help