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

NAME
     std::inout_ptr - std::inout_ptr

Synopsis
	Defined in header <memory>
	template<  class  Pointer  =  void, class Smart, class... Args >  (since
     C++23)
	auto inout_ptr( Smart& s, Args&&... args );

	Returns an inout_ptr_t with deduced template arguments that captures ar-
     guments for
	resetting by reference.

	The program is ill-formed if construction of the return value  (see  be-
     low) is
	ill-formed.

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

Return value
	std::inout_ptr_t<Smart,   P,   Args&&>(s,  std::forward<Args>(args)...),
     where P is

	  * Pointer, if Pointer is not same as void, otherwise,
	  * Smart::pointer, if it is valid and denotes a type, otherwise,
	  * Smart::element_type*, if Smart::element_type is valid and denotes  a
     type,
	    otherwise,
	  * std::pointer_traits<Smart>::element_type*.

Notes
	Users  may  specify  the  template  argument  for the template parameter
     Pointer, in order
	to interoperate with foreign functions that take a Pointer*.

	As all arguments for resetting are captured by reference,  the	returned
     inout_ptr_t
	should be a temporary object destroyed at the end of the full-expression
     containing
	the call to the foreign function, in order to avoid dangling references.

	Feature-test macro  Value    Std		     Feature
	__cpp_lib_out_ptr  202106L (C++23) std::out_ptr, std::inout_ptr
			   202311L   (C++26)   freestanding   std::out_ptr   and
     std::inout_ptr

Example
	 This section is incomplete
	 Reason: no example

See also
	out_ptr 		  creates an out_ptr_t with an associated  smart
     pointer and
	(C++23) 		  resetting arguments
				  (function template)
	make_unique
	make_unique_for_overwrite  creates  a  unique pointer that manages a new
     object
	(C++14) 		  (function template)
	(C++20)
	make_shared		  creates a shared pointer that  manages  a  new
     object
	make_shared_for_overwrite (function template)
	(C++20)

Category:
	  * Todo no example

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

home | help