home | help
std::experi...pagate_const(3)  C++ Standard Libary std::experi...pagate_const(3)

NAME
     std::experimental::propagate_const::propagate_const    -	 std::experimen-
     tal::propagate_const::propagate_const

Synopsis
	constexpr propagate_const() = default;		    (1) (library  funda-
     mentals TS v2)
	constexpr  propagate_const( propagate_const&& p ) =  (2) (library funda-
     mentals TS v2)
	default;
	template< class U >
	/* see below */ constexpr propagate_const(	    (3) (library  funda-
     mentals TS v2)
	propagate_const<U>&& pu );
	template<  class U >				     (4) (library funda-
     mentals TS v2)
	/* see below */ constexpr propagate_const( U&& u );
	propagate_const( const propagate_const& ) = delete; (5) (library  funda-
     mentals TS v2)

	Let  t_  designate  the private data member that is the wrapped pointer-
     like object.

	1) Constructs a propagate_const, default-initializing this->t_.
	2) Explicitly defaulted move constructor that move  constructs	this->t_
     from p.t_.
	3) Initializes this->t_ as if by direct-non-list-initialization from the
     expression
	std::move(pu.t_).
	This constructor does not participate in overload resolution unless
	std::is_constructible<T,  U>::value is true, and is explicit if and only
     if
	std::is_convertible<U, T>::value is false.
	4) Initializes this->t_ as if by direct-non-list-initialization with the
     expression
	std::forward<U>(u).
	This constructor does not participate in overload resolution unless
	std::is_constructible<T, U>::value is true and std::decay_t<U> is not a
	specialization of propagate_const. This constructor is explicit  if  and
     only if
	std::is_convertible<U, T>::value is false.
	5)  Copy constructor is explicitly deleted. propagate_const is non-copy-
     able.

Parameters
	p  - another propagate_const object to move from
	pu - another propagate_const object of	a  different  specialization  to
     move from
	u  - another object to initialize the contained pointer with

Notes
	In Library Fundamental TS v2 (based on C++14), (4) and (5) are typically
     implemented
	in explicit/non-explicit overload pairs. Since Library Fundamental TS v3
     (based on
	C++20), they can be implemented in conditional explicit specifiers.

http://cppreference.com 	   2024.06.10	   std::experi...pagate_const(3)

home | help