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

FreeBSD Manual Pages

  
 
  

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
       arguments for
	  resetting by reference.

	  The  program	is ill-formed if construction of the return value (see
       below) 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 de-
       notes 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 re-
       turned inout_ptr_t
	  should be a temporary	object destroyed at the	end  of	 the  full-ex-
       pression	containing
	  the  call to the foreign function, in	order to avoid dangling	refer-
       ences.

	  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)

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

home | help