home | help
std::alloca...::construct(3)   C++ Standard Libary  std::alloca...::construct(3)

NAME
     std::allocator_traits::construct - std::allocator_traits::construct

Synopsis
	Defined in header <memory>
	template<	  class 	T,	   class...	   Args        >
     (since C++11)
	static void construct( Alloc& a, T* p, Args&&... args );	    (un-
     til C++20)
	template<	 class	      T,	 class...	  Args	       >
     (since C++20)
	static constexpr void construct( Alloc& a, T* p, Args&&... args );

	If  possible,  constructs an object of type T in allocated uninitialized
     storage
	pointed to by p, by calling a.construct(p, std::forward<Args>(args)...).

	If the above is not possible (e.g. Alloc does not have the member  func-
     tion
	construct()), then calls

	::new	(static_cast<void*>(p))   T(std::forward<Args>(args)...)  (until
     C++20)
	std::construct_at(p,   std::forward<Args>(args)...)		  (since
     C++20)

Parameters
	a	- allocator to use for construction
	p	 - pointer to the uninitialized storage on which a T object will
     be
		  constructed
		  the constructor arguments to pass to a.construct() or to
		  placement-new
	args... - (until C++20)
		  std::construct_at()
		  (since C++20)

Return value
	(none)

Notes
	This function is used by the standard library containers when inserting,
     copying, or
	moving elements.

	Because this function provides the automatic fall back to placement new,
     the member
	function construct() is an optional Allocator requirement since C++11.

See also
	operator new   allocation functions
	operator new[] (function)
	construct      constructs an object in allocated storage
	(until C++20)  (public member function of std::allocator<T>)
	construct_at   creates an object at a given address
	(C++20)        (function template)

http://cppreference.com 	   2024.06.10	    std::alloca...::construct(3)

home | help