reinterpret_cast не должен использоваться
reinterpret_cast не должен использоваться.
reinterpret_cast
обычно используется, чтобы явным образом преобразовать между двумя несвязанными типами данных. Например, в этом примере, reinterpret_cast
преобразовывает тип struct S*
в int*
:
struct S { int x; } s; int* ptr = reinterpret_cast<int*> (&s);
Однако трудно использовать reinterpret_cast
и не нарушить безопасность типов. Если результатом reinterpret_cast
является указатель, безопасно разыменовать указатель только после того, как вы бросаете указатель назад на его исходный тип.
Средство проверки правила отмечает все использование ключевого слова reinterpret_cast
.
Если средство проверки правила отмечает использование reinterpret_cast
, который вы считаете безопасными, добавляете комментарий, выравнивающий по ширине результат. Смотрите Результаты Polyspace Адреса Через Исправления ошибок или Комментарии.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Выражения |