cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
90 stars 0 forks source link

пускай std::string кидает исключение std::invalid_argument, когда ему на вход дают nullptr #323

Closed apolukhin closed 3 years ago

apolukhin commented 3 years ago

Перенос предложения: голоса +3, -4 Автор идеи: Evgeny Basargin

Многим знакома неприятная ситуация, когда в конструктор, методы или операторы std::string попадает нулевой указатель (особенно часто бывает при взаимодействии с С-библиотеками). В таких случаях неизменно случается segmentation fault, я бы хотел предложить заменить крэш на более гуманное исключение типа std::invalid_argument. Думаю, преимущества исключения перед крэшом для всех очевидны.

apolukhin commented 3 years ago

yndx-antoshkka, 16 июля 2018, 20:08 В скром времени должны будут подъехать контракты в стандартную библиотеку. Тогда подобные requires превратятся в контракт и можно будет регулировать поведение конструкторов std::string в случае нарушения контракта (например при передачи в него nullptr).

Айдар Фаттахов, 31 июля 2018, 10:47 Оверхед же

apolukhin commented 3 years ago

Дубликат #188