home | help
std::inout_...:inout_ptr_t(3)  C++ Standard Libary std::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& mem-
     ber, captures
	every argument t in args... as if initializes the  corresponding  member
     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.re-
     lease() 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 copy-
     able 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 exam-
     ple, 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	destruc-
     tor.

Example
	 This section is incomplete
	 Reason: no example

Category:
	  * Todo no example

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

home | help