Только литерал nullptr должен использоваться в качестве ограничения нулевого указателя
Только литерал nullptr должен использоваться в качестве ограничения нулевого указателя.
nullptr
был введен на C++ 11, чтобы поддержать концепцию указателя, который не указывает на доступный объект. Перед C++ 11, макро-NULL
и постоянный 0 был единственными способами задать постоянного нулевого указателя. Используя nullptr
указать на нулевых указателей имеет несколько преимуществ перед использованием NULL
или 0
. Например:
nullptr
может использоваться с любым типом нулевого указателя, не требуя неявного броска.
nullptr
литералы позволяют передачу параметра при помощи функции шаблона.
NULL
макрос, который расширяется до целочисленного 0
который брошен в void*
ввод. Используя NULL
или 0
указать на нулевых указателей противоречит ожиданию разработчика. Если код, ожидающий nullptr
обнаружение NULL
или 0
вместо этого, это может привести к беспорядку или неожиданному поведению.
Polyspace® отмечает использование NULL
или 0
вместо nullptr
указать на нулевого указателя. Это правило не проверяет на преобразование между NULL
и 0
. Смотрите AUTOSAR C++14 Rule M4-10-1
.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Стандартные преобразования |
Категория: необходимый, автоматизированный |
AUTOSAR C++14 Rule M4-10-1
| AUTOSAR C++14 Rule M4-10-2
| Check AUTOSAR C++ 14 (-autosar-cpp14)