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