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