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

NAME
     std::experimental::ranges::MoveConstructible	 -	 std::experimen-
     tal::ranges::MoveConstructible

Synopsis
	Defined in header <experimental/ranges/concepts>
	template< class T >

	concept bool MoveConstructible =		  (ranges TS)

	    Constructible<T, T> && ConvertibleTo<T, T>;

	The concept MoveConstructible is satisfied if T is a reference type,  or
     if it is an
	object	type where an object of that type can constructed from an rvalue
     of that type
	in both direct- and copy-initialization contexts, with the usual  seman-
     tics.

	More  precisely,  if  T  is an object type, then MoveConstructible<T> is
     satisfied only
	if given

	  * rv, an rvalue of type T, and
	  * u2, a distinct object of type T equal to rv,

	the following are true:

	  * After the definition T u = rv;, u is equal to u2;
	  * T{rv} is equal to u2; and
	  * If T is not const-qualified, then rv's resulting state (after the
	    definition/expression is evaluated in either bullets above) is valid
     but
	    unspecified; otherwise, it is unchanged.

See also
	is_move_constructible
	is_trivially_move_constructible checks if a type can be constructed from
     an rvalue
	is_nothrow_move_constructible	reference
	(C++11) 			(class template)
	(C++11)
	(C++11)

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

home | help