"Peter Dimov"
OK, but you are arguing for shared_ptr<T> to T* comparisons, not for a
void
const * conversion. The right way to support these comparisons is by defining the appropriate operators. If you want to "lobby" for shared_ptr<T> == T*, please do so on the developer list, I've no problem with that. :-)
I'm not arguing for anything. This is a technique I picked up that I found useful because it, in a single method, provides a number of useful features. I was simply curious as to why Boost didn't use the technique. I presumed that it was obvious enough that it had been considered and rejected. After searching, I was unable to find any rational for not using it, so I asked here. My goal was to understand the logic behind that decision. You have explained clearly why you prefer to not use it in a generic smart pointer implementation so that achieves my goal.