Function Subspace :: sus :: mem :: move

template <class T>
auto move(T&& t) -> decltype(auto)
requires
!std::is_const_v<std::remove_reference_t<T>>

Cast t to an r-value reference so that it can be used to construct or be assigned to a (non-reference) object of type T.

move() requires that t can be moved from, so it requires that t is non-const. This differs from std::move().

The move() call itself does nothing to t, as it is just a cast, similar to std::move(). It enables an lvalue (a named object) to be used as an rvalue. The function does not require T to be Move, in order to call rvalue-qualified methods on T even if it is not Move.