std::Movable
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header  <concepts>
  | 
||
|   template < class T > concept Movable =  | 
(since C++20) | |
The concept Movable<T> specifies that T is an object type that can moved (that is, it can be move constructed, move assigned, and lvalues of type T can be swapped).
See also
|    (C++20)  | 
  specifies that an object of a type can be copied, moved, and swapped   (concept)  |