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

NAME
     std::assignable_from - std::assignable_from

Synopsis
	Defined in header <concepts>
	template< class LHS, class RHS >

	concept assignable_from =
	    std::is_lvalue_reference_v<LHS> &&
	    std::common_reference_with<
		const  std::remove_reference_t<LHS>&,			  (since
     C++20)
		const std::remove_reference_t<RHS>&> &&
	    requires(LHS lhs, RHS&& rhs) {
		{ lhs = std::forward<RHS>(rhs) } -> std::same_as<LHS>;

	    };

	The concept assignable_from<LHS, RHS> specifies that  an  expression  of
     the type and
	value  category specified by RHS can be assigned to an lvalue expression
     whose type
	is specified by LHS.

Notes
	Assignment need not be a total function. In particular, if assigning  to
     some object
	x can cause some other object y to be modified, then x = y is likely not
     in the
	domain	of  =.	This typically happens if the right operand is owned di-
     rectly or
	indirectly by the left operand (e.g., with smart pointers to nodes in  a
     node-based
	data structure, or with something like std::vector<std::any>).

See also
	is_assignable
	is_trivially_assignable  checks if a type has an assignment operator for
     a specific
	is_nothrow_assignable	argument
	(C++11) 		(class template)
	(C++11)
	(C++11)

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

home | help