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

FreeBSD Manual Pages

  
 
  

home | help
std::inout_...:inout_ptr_t(3) C++ Standard Libarystd::inout_...:inout_ptr_t(3)

NAME
       std::inout_ptr_t::inout_ptr_t - std::inout_ptr_t::inout_ptr_t

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

	  1)  Creates  an  inout_ptr_t.	Adapts sp as if	binds it to the	Smart&
       member, captures
	  every	argument t in args... as if initializes	the corresponding mem-
       ber of type T in
	  Args... with std::forward<T>(t), then	initializes the	stored Pointer
       with sp if
	  Smart	is a pointer type, otherwise, initializes  it  with  sp.get().
       sp.release() may
	  be  called if	Smart is not a pointer type, in	which case it will not
       be called again
	  within the destructor.
	  2) Copy constructor is explicitly deleted.  inout_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
	  If Smart is not a pointer type and sp.release() is not called	by the
       constructor, it
	  may be called	by the destructor before resetting sp.

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

	  The constructor of inout_ptr_t is allowed to throw  exceptions.  For
       example,	when sp
	  is an	intrusive pointer with a control block,	the allocation for the
       new control
	  block	 may  be  performed within the constructor rather than the de-
       structor.

Example
	   This	section	is incomplete
	   Reason: no example

Category:
	    * Todo no example

http://cppreference.com		  2024.06.10	 std::inout_...:inout_ptr_t(3)

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

home | help