Недавно я оценил идиому копирования и замены и использовал его для реализации назначения копирования для любого класса, который управляет ресурсом. Так что это заставило меня задуматься о типах стандартной библиотеки: гарантирует ли стандарт поведение, исключающее безопасность?
Например, рассмотрим класс, который содержит один std::string
элемент данных. Обычно я бы не реализовал свое собственное назначение копирования и т. Д., Но безопасно ли это? Гарантирует ли стандарт, что элемент данных std::string
останется неизменным в случае неудачного копирования? Было бы полезно в этом случае реализовать функцию копирования и замены или это слишком далеко?