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

Сообщение Re[7]: const reference nullptr от 15.07.2017 16:30

Изменено 15.07.2017 16:39 N. I.

Re[7]: const reference nullptr
prezident.mira:

NI>>(int*)nullptr не указывает на какой-либо объект, и, следовательно, результатом здесь не может быть "an lvalue referring to the object or function to which the expression points". Если результат выполнения этого выражения другой, то какой именно? Если описания поведения нет, то де-юре получаем не что иное, как undefined behavior:


PM>Скажите, тип указателя тут важен? Ну т.е. важно, получаем ли мы null pointer to int или на какой ещё тип? (incomplete types не рассматриваем).


Если *(T *)nullptr вычисляется, будучи операндом typeid (что возможно только если T — полиморфный тип), то поведение является определённым: typeid должен бросить исключение — этот случай специально оговорён. В остальных случаях, если T — это object/function type, то насколько я вижу, де-юре получается undefined behavior.
Re[7]: const reference nullptr
prezident.mira:

NI>>(int*)nullptr не указывает на какой-либо объект, и, следовательно, результатом здесь не может быть "an lvalue referring to the object or function to which the expression points". Если результат выполнения этого выражения другой, то какой именно? Если описания поведения нет, то де-юре получаем не что иное, как undefined behavior:


PM>Скажите, тип указателя тут важен? Ну т.е. важно, получаем ли мы null pointer to int или на какой ещё тип? (incomplete types не рассматриваем).


Если *(T *)nullptr вычисляется, будучи операндом typeid (что возможно только если T — полиморфный тип), то поведение является определённым: typeid должен бросить исключение — этот случай специально оговорён. В остальных случаях, если T — это object/function type, то насколько я вижу, при вычислении *(T *)nullptr де-юре получается undefined behavior.