>>773
<= とか < でなく、std::less と std::less_equal を使えば
任意のポインタについて比較ができることが保証されてる。(20.3.3.8)

ただ
 std::less_equal()(&a[0],p) && std::less()(p,&a[N]);
は、pが配列内を指すならtrueなのは確かだが、外の時必ず
falseになる、と定められているかどうかはわからん。。。