`decay()` on AccessorPolicy should just be spelled std::to_address()
The cases where decay() behavior should differ from std::to_address() (which basically delegates to std::pointer_traits<T>::to_address(), with some specific exceptions) are really esoteric and definitely don't necessitate the extra complexity in Accessor. (If you really needed different behavior for some reason I can't even conceive of, you could always wrap the pointer type and provide a std::pointer_traits specialization for the wrapped type, but I really can't think of a scenario when someone would need to do this.)
Preempting the first comment: std::to_address() is not the same thing as std::addressof(), or even related. (I know that would be my knee-jerk response, so just throwing that out there).