That's very much the wrong lesson.
Simply taking std::string by value (as it is a memory management class created for that explicit purpose) would have solved the problem without kneecapping every class you make.
Better rules to take out if this than to delete all move and copy operators: