Неправильные аргументы к offsetof
макрос вызывает неопределенное поведение
Неправильное использование offsetof на C++ происходит, когда вы передаете аргументы offsetof
макрос, для которого не задано поведение макроса.
offsetof
макрос:
offsetof(classType, aMember)
aMember
с начала объекта типа classType
. Для использования в offsetof
, classType
и aMember
имейте определенные ограничения:
classType
должен быть стандартный класс макета.
Например, это не должно иметь virtual
функции членства. Для получения дополнительной информации о требованиях для стандартного класса макета смотрите C++, названный требованиями: StandardLayoutType.
aMember
не должно быть статическим.
aMember
не должна быть функция членства.
Средство проверки отмечает использование offsetof
макрос, где аргументы нарушают один или несколько из этих ограничений.
Нарушение ограничений на аргументы offsetof
макрос приводит к неопределенному поведению.
Используйте offsetof
макрос только на нестатических элементах данных стандартного класса макета.
Результат детализирует состояние который ограничение на offsetof
макрос нарушен. Зафиксируйте нарушение.
Группа: Программирование |
Язык: C++ |
Значение по умолчанию: на |
Синтаксис командной строки:
OFFSETOF_MISUSE |
Удар: носитель |