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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::pmr::polymorphic_allocator::new_object - std::pmr::polymorphic_al-
       locator::new_object

Synopsis
	  template<  class  U,	class...  CtorArgs  >			(since
       C++20)
	  [[nodiscard]]	U* new_object( CtorArgs&&... ctor_args );

	  Allocates and	constructs an object of	type U.

	  Given	alloc is a std::pmr::polymorphic_allocator<T>:

	U* p = alloc.new_object<U>(std::forward<CtorArgs>(ctor_args)...);

	  is equivalent	to

	U* p = alloc.allocate_object<U>();
	try {
	  alloc.construct(p, std::forward<CtorArgs>(ctor_args)...);
	} catch	(...) {
	  alloc.deallocate_object(p);
	  throw;
	}

Parameters
	  ctor_args - the arguments to forward to the constructor of U

Return value
	  A pointer to the allocated and constructed object.

Notes
	  This function	was introduced for use with the	fully-specialized  al-
       locator
	  std::pmr::polymorphic_allocator<>,  but it may be useful in any spe-
       cialization as a
	  shortcut to avoid having to rebind from  std::pmr::polymorphic_allo-
       cator<T>	to
	  std::pmr::polymorphic_allocator<U>,  and  having  to	call allocate,
       construct, and
	  deallocate individually.

	  Since	U is not deduced, it must be provided as a  template  argument
       when calling this
	  function.

Exceptions
	  May  throw  any  exceptions thrown by	the call to allocate_object or
       the constructor of
	  U.

See also
	  allocate_bytes  Allocate raw aligned memory from the underlying  re-
       source
	  (C++20)	  (public member function)
	  allocate_object  Allocates  raw  memory suitable for an object or an
       array
	  (C++20)	  (public member function)
	  allocate	  Allocate memory
			  (public member function)
	  allocate	  allocates uninitialized storage using	the allocator
	  [static]	   (public  static  member  function  of  std::alloca-
       tor_traits<Alloc>)
	  allocate	  allocates memory
			  (public   member  function  of  std::pmr::memory_re-
       source)

http://cppreference.com		  2022.07.31	 std::pmr::p...::new_object(3)

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

home | help