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.

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)
	  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: __cpp_lib_polymorphic_allocator

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

http://cppreference.com		  2022.07.31	 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.0>

home | help