LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

Совсем UB. a->b === (*a).b === «разыменование нулевого указателя» === UB. Это работает для не виртуальных методов (пока они не станутвиртуальные... ну а потом выстрелит, когда-нибудь), и применяется нехорошими людьми сознательно, но это UB. Компилятор имеет право соптимизировать явный вызов метода на нулевом указателе скажем в std::terminate() и будет прав, по стандарту (лень снова искать те цитаты).

Исходная версия xaizek, :

Совсем UB. a->b === (*a).b === «разыменование нулевого указателя» === UB. Это работает для не виртуальных методов (пока они не станутвиртуальные... ну а потом выстрелит, когда-нибудь), и применяется нехорошими людьми сознательно, но это UB.