Hi Olivier,
What purpose do these serve... template<typename T> bool operator ==(const T *left ,const _NULL_PTPL_RUNTIME_ &right) { return (right.operator ==(left)); };
template<typename T> bool operator !=(const T *left ,const _NULL_PTPL_RUNTIME_ &right) { return (right.operator !=(left)); }; ...?
That functionality is already available in your class template through the auto-conversion in the operator T*. Which is going to lead to ambiguity.
--Eljay