Информация об изменениях

Сообщение Re[2]: const reference nullptr от 11.07.2017 19:03

Изменено 11.07.2017 19:15 prezident.mira

Re[2]: const reference nullptr
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Dair, Вы писали:


D>>Или это яркий пример так называемого говнокода, как мне и показалось с первого взгляда?


К>Без контекста непонятно, до какой степени это говнокод.

К>Но говнокод в любом случае, т.к. это эксплуатация неопределённого поведения.

А есть ли здесь UB? Т.к. просто применение оператора * к нулевому указателю UB не является (несмотря на широко распространённое поверие, что является). Т.е.
*(SomeClass*)nullptr;

это ещё не UB само по себе.

UB является инициализация ссылок с помощью нулевой ссылки, вроде
const SomeClass& ref = *(SomeClass*)nullptr;


А вот является ли UB просто возврат нулевой ссылки из функции?
Re[2]: const reference nullptr
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Dair, Вы писали:


D>>Или это яркий пример так называемого говнокода, как мне и показалось с первого взгляда?


К>Без контекста непонятно, до какой степени это говнокод.

К>Но говнокод в любом случае, т.к. это эксплуатация неопределённого поведения.

А есть ли здесь UB? Т.к. просто применение оператора * к нулевому указателю UB не является (несмотря на широко распространённое поверие, что является). Т.е.
*(SomeClass*)nullptr;

это ещё не UB само по себе.

UB является инициализация ссылок с помощью нулевой ссылки, вроде
const SomeClass& ref = *(SomeClass*)nullptr;


А вот является ли UB просто возврат нулевой ссылки из функции?

UPD: нашёл сам: return является инициализацией. Значит UB.