Что такое строгое правило псевдонимов? - PullRequest
738 голосов
/ 19 сентября 2008

Когда спрашивают о распространенном неопределенном поведении в C , души более просветленные, чем я, ссылались на правило строгого наложения имен. О чем они говорят?

Ответы [ 11 ]

0 голосов
/ 09 июля 2018

Технически в C ++ правило строгого алиасинга, вероятно, никогда не применяется.

Обратите внимание на определение косвенности (* оператор ):

Унарный * оператор выполняет косвенное выражение: выражение, к которому он относится применяется указатель на тип объекта или указатель на тип функции и результат - lvalue, ссылающийся на объект или функция , на которую указывает выражение .

Также из определение glvalue

glvalue - это выражение, оценка которого определяет идентичность объект, (... отрываться)

Таким образом, в любой четко определенной программной трассировке glvalue ссылается на объект. Так что так называемое правило строгого наложения не применяется никогда. Возможно, это не то, что хотели дизайнеры.

...