@ Фред нет. они заменили его, потому что хотят изменить его на определенное поведение в долгосрочной перспективе (post-c ++ 0x) и хотели получить лучший пример неопределенного поведения.

я на самом деле не обращаюсь к разыменованному «объекту», разве разыменование нулевого указателя остается неопределенным?

int* p = 0;
int& r = *p;    // undefined?
int* q = &*p;   // undefined?

Несколько более практичный пример: можно ли разыменовать нулевой указатель, чтобы различать перегрузки?

void foo(Bar&);
void foo(Baz&);

foo(*(Bar*)0);  // undefined?

Хорошо, эталонные примеры определенно неопределенного поведения в соответствии со стандартом:

нулевая ссылка не может существовать в четко определенной программе, потому что единственный способ создать такую ​​ссылку - привязать ее к «объекту», полученному путем разыменования нулевого указателя,что вызывает неопределенное поведение.

К сожалению, выделенная часть неоднозначна. Этопереплет часть, которая вызывает неопределенное поведение, или являетсяразыменовании части достаточно?

Ответы на вопрос(3)

Ваш ответ на вопрос