char* p = nullptr;
static_cast<void>(p < nullptr); // invalid
static_cast<void>(std::less<>()(p, nullptr)); // valid on clang 12; invalid on gcc 11
static_cast<void>(std::less<char*>()(p, nullptr)); // valid
static_cast<void>(std::unique_ptr<char*>() < nullptr); // valid
static_cast<void>(std::shared_ptr<char*>() < nullptr); // valid