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

FreeBSD Manual Pages

  
 
  

home | help
std::out_ptr_t::out_ptr_t(3)  C++ Standard Libary std::out_ptr_t::out_ptr_t(3)

NAME
       std::out_ptr_t::out_ptr_t - std::out_ptr_t::out_ptr_t

Synopsis
	  explicit out_ptr_t( Smart &sp, Args... args ); (1) (since C++23)
	  out_ptr_t( const out_ptr_t& )	= delete;	 (2) (since C++23)

	  1) Creates an	out_ptr_t. Adapts sp as	if binds it to the Smart& mem-
       ber, captures
	  every	argument t in args... as if initializes	the corresponding mem-
       ber of type T in
	  Args...  with	 std::forward<T>(t), then value-initializes the	stored
       Pointer.
	  Then calls sp.reset()	if the expression is  well-formed;  otherwise,
       calls sp	=
	  Smart()  if std::is_default_constructible_v<Smart> is	true. The pro-
       gram is ill-formed
	  if both resetting operations are ill-formed.
	  2) Copy constructor is  explicitly  deleted.	out_ptr_t  is  neither
       copyable	nor
	  movable.

Parameters
	  sp	  - the	object (typically a smart pointer) to adapt
	  args... - the	arguments used for resetting to	capture

Return value
	  (none)

Exceptions
	  May throw implementation-defined exceptions.

Notes
	  After	 construction,	the Pointer or void* object pointed by the re-
       turn value of
	  either conversion function is	equal to nullptr.

	  Every	argument in args... is moved into the created out_ptr_t	if  it
       is of an	object
	  type,	 or transferred	into the created out_ptr_t as-is if it is of a
       reference type.

	  The constructor of out_ptr_t is allowed to throw exceptions. For ex-
       ample, when sp is
	  a std::shared_ptr, the allocation for	the new	control	block  may  be
       performed within
	  the constructor rather than the destructor.

Example
	   This	section	is incomplete
	   Reason: no example

Category:
	    * Todo no example

http://cppreference.com		  2024.06.10	  std::out_ptr_t::out_ptr_t(3)

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

home | help