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

FreeBSD Manual Pages

  
 
  

home | help
std::alloca...ts::allocate(3) C++ Standard Libarystd::alloca...ts::allocate(3)

NAME
       std::allocator_traits::allocate - std::allocator_traits::allocate

Synopsis
	  Defined in header <memory>
	  static  pointer  allocate(  Alloc&  a,  size_type n		(since
       C++11)
	  );								(until
       C++20)
	  [[nodiscard]]	 static	 constexpr  pointer  allocate(		(since
       C++20)
	  Alloc& a, size_type n	);
	  static   pointer   allocate(	 Alloc&	  a,   size_type    n,	   (1)
       (since C++11)
	  const_void_pointer			  hint			    );
       (until C++20)
	  [[nodiscard]]	static constexpr pointer allocate(     (2)
	  Alloc&		a,		  size_type		    n,
       (since C++20)
	  const_void_pointer hint );

	  Uses	the  allocator a to allocate n*sizeof(Alloc::value_type) bytes
       of uninitialized
	  storage. An array of type Alloc::value_type[n]  is  created  in  the
       storage,	but none
	  of its elements are constructed.

	  1) Calls a.allocate(n)
	  2)  Additionally  passes  memory  locality  hint hint. Calls a.allo-
       cate(n, hint) if
	  possible. If not possible (e.g. a has	no two-argument	 member	 func-
       tion allocate()),
	  calls	a.allocate(n)

Parameters
	  a    - allocator to use
	  n    - the number of objects to allocate storage for
	  hint - pointer to a nearby memory location

Return value
	  The pointer returned by the call to a.allocate(n)

Notes
	  Alloc::allocate  was	not  required  to  create  array  object until
       P0593R6,	which made
	  using	non-default allocator for std::vector and some other  contain-
       ers not actually
	  well-defined according to the	core language specification.

	  After	 calling allocate and before construction of elements, pointer
       arithmetic of
	  Alloc::value_type* is	well-defined within the	allocated  array,  but
       the behavior is
	  undefined if elements	are accessed.

See also
	  allocate allocates uninitialized storage
		   (public member function of std::allocator<T>)

http://cppreference.com		  2022.07.31	 std::alloca...ts::allocate(3)

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

home | help