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) |