Операторы равенства имеют смысловые ограничения реляционных операторов на указатели:
Операторы == (равно) и a = = (не равные) имеют те же семантические ограничения, преобразования и тип результата, что и реляционные операторы, за исключением их более низкого приоритета и результата истины. [С++ 03 §5.10p2]
И реляционные операторы имеют ограничение на сравнение указателей:
Если два указателя p и q того же типа указывают на разные объекты, которые не являются членами одного и того же объекта или элементов одного и того же массива или с разными функциями или если только один из них является нулевым, результаты p < q, p > q, p <= q и p >= q не определены. [§5.9p2]
Является ли это семантическим ограничением, которое "унаследовано" операторами равенства?
В частности, данный:
int a[42];
int b[42];
Ясно, что (a + 3) (b + 3) неуказан, но является (a + 3) == (b + 3) также неуказанным?