class passenger { /* ... */ } ; // CopyAssignable
class bus
{
// aggregated: a bus owns its passengers
std::vector<passenger> passengers ;
// there is no need to declare this. (vectors are CopyAssignable)
// public: bus& operator= ( const bus& that ) = default ;
};