C++ concepts: CopyAssignable
From cppreference.com
                    
                                        
                    
                    
                                                            
                    Specifies that an instance of the type can be copy-assigned (copied).
This concept implies MoveAssignable.
[edit] Requirements
The type must implement the following functions:
Type::operator=
|   Type& Type::operator=( Type& other ); Type& Type::operator=( const Type& other );  | 
(One of the variants is sufficient) | |
Copy assignment operator: assigns the contents of other. The internal state of other must not be modified.
The following expressions must have the specified effects:
| Expression | Effects | 
| a = v; | a is equivalent to v, where a is an instance of Type and v is an instance of Type. v must be unchanged. | 
[edit] See also
|    (C++11) (C++11) (C++11)  | 
   checks if a type has a copy assignment operator   (class template)  |