Этот вопрос был вдохновлен этим ответом .
Я всегда придерживался философии, что вызываемый абонент никогда не несет ответственности, когда вызывающий делает что-то глупое, например, передача недействительного параметры. Я пришел к такому выводу по нескольким причинам, но, пожалуй, самая важная из них исходит из этой статьи :
Все, что не определено, не определено.
Если функция не говорит в своей документации, что Это' s допустимы для передачи nullptr
, тогда вам, черт возьми, лучше не передавать nullptr
этой функции. Я не думаю, что вызываемый должен заниматься такими вещами.
Однако я знаю, что найдутся люди, которые не согласятся со мной. Мне любопытно, стоит ли мне проверять эти вещи и почему.