Можно ли [s]делить на 0[/s] дереференсить NULL?
&(dummy->fParent)это же конст экспрешшн, который вычислится в компайл тайм.
Вообще, покуда мы не попытаемся прочитать данные из этого дамми - сегфолта не будет. Представь себе, как "(char *)&(dummy->fParent) - (char *)dummy" будет в асме выглядеть. Особых вариантов нет - и никакой оптимизатор не нужен, чтобы оно не пыталось читать по нулевым адресам.
нормальные люди называют это offsetofНормальные люди здесь - это белые люди, работающие на свежих версиях мейнстримовых компиляторов и платформ. Им не приходится сталкиваться с львиной долей платформ и компиляторов (в том числе реликтовых на которых успешно собирается и работает Xerces-C++.
А зачем тут вообще указатель? Почему то же самое с обычной переменной не сделать?
под обычную переменную память на стеке выделится и потом освободится, а так все расчеты будут произведены во время компиляции без выделения памяти.
Оставить комментарий
yolki
ну вот какого фига?xerces-c-src_2_7_0\src\xercesc\dom\impl\DOMCasts.hpp:119
я конечно понимаю, что имеется в виду, но блжад, они надеются на оптимизации? или это какое-то ожидаемое поведение, специфицированное в стандарте?