@ Фред нет. они заменили его, потому что хотят изменить его на определенное поведение в долгосрочной перспективе (post-c ++ 0x) и хотели получить лучший пример неопределенного поведения.
я на самом деле не обращаюсь к разыменованному «объекту», разве разыменование нулевого указателя остается неопределенным?
int* p = 0;
int& r = *p; // undefined?
int* q = &*p; // undefined?
Несколько более практичный пример: можно ли разыменовать нулевой указатель, чтобы различать перегрузки?
void foo(Bar&);
void foo(Baz&);
foo(*(Bar*)0); // undefined?
Хорошо, эталонные примеры определенно неопределенного поведения в соответствии со стандартом:
нулевая ссылка не может существовать в четко определенной программе, потому что единственный способ создать такую ссылку - привязать ее к «объекту», полученному путем разыменования нулевого указателя,что вызывает неопределенное поведение.
К сожалению, выделенная часть неоднозначна. Этопереплет часть, которая вызывает неопределенное поведение, или являетсяразыменовании части достаточно?