Closed apolukhin closed 3 years ago
yndx-antoshkka, 16 июля 2018, 20:08 В скром времени должны будут подъехать контракты в стандартную библиотеку. Тогда подобные requires превратятся в контракт и можно будет регулировать поведение конструкторов std::string в случае нарушения контракта (например при передачи в него nullptr).
Айдар Фаттахов, 31 июля 2018, 10:47 Оверхед же
Дубликат #188
Перенос предложения: голоса +3, -4 Автор идеи: Evgeny Basargin
Многим знакома неприятная ситуация, когда в конструктор, методы или операторы std::string попадает нулевой указатель (особенно часто бывает при взаимодействии с С-библиотеками). В таких случаях неизменно случается segmentation fault, я бы хотел предложить заменить крэш на более гуманное исключение типа std::invalid_argument. Думаю, преимущества исключения перед крэшом для всех очевидны.