https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100903
--- Comment #2 from M Welinder <terra at gnome dot org> --- IMHO, nullptr_t would not be an improvement here. We would still have the combination of: (1) Correct usage causing a warning (2) The warning hinting at using the incorrect nullptr instead. (3) po<nullptr compiling with no error or even warning. I think the current magic-pointer code could be improved with something like template<class T,std::enable_if_t<std::is_same_v<T,std::nullptr_t>>> bool operator< (..., T) = delete; This would at least take care of (3). (Template magic applied to resolve the ambiguity of what to do with literal 0. There might be a better way.)