Похоже, вы написали свою собственную версию std::make_unique
с менее гибким API.Я бы порекомендовал настроить API, поскольку это облегчит обновление.
Тем не менее, ваш вопрос касается проверки на нуль.Как указывалось несколько раз в комментариях, вам не нужно проверять после получения указателя, так как нужно бросить std :: bad_alloc.Тем не менее, давайте предположим, что у вас есть еще одна проверка, которая выдает такое пользовательское исключение, а не главный вопрос: каков ваш API, включая условия до и после.
В кодовой базе, с которой мы работаем, std :: unique_ptr не разрешенбыть nullptr, если не задокументировано.В этом случае: нет необходимости в нулевой проверке.Вы можете задокументировать его как nullptr или вернуть вместо него необязательный, который может указывать на недопустимое состояние.
Моя привычка состояла бы в том, чтобы утверждать указатель перед использованием или после создания.Однако вы можете автоматизировать эту работу, используя дезинфицирующие средства Clang / Gcc.GSL также имеет доступную проверку для этого использования nullptr.
Мое предложение: утверждать после создания переменной (или использовать дезинфицирующие средства), которая должна найти ошибку во время тестирования, если пост-условия изменятся.Находясь вместе со своими колледжами, вы должны согласиться с тем, что не допускается, чтобы unique_ptr содержал null, если не задокументировано, что представляет собой nullptr.