Не проверяйте указатель на nullptr после new

Проблема: лишняя проверка.

foo* f = new foo();
if (f == nullptr) // Неправильно!
    return;

Оператор new в случае ошибки выбросит исключение std::bad_alloc, поэтому проверять на nullptr смысла нет никакого.

Ситуация меняется, если использовать специальный оператор new, не выбрасывающий исключения:

foo* f = new(std::nothrow) foo();
if (f == nullptr) // Правильно!
    return;