Неправильные аргументы к макросу 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 |
| Влияние: носитель |