Remove redundant operators !=

This commit is contained in:
Nekotekina 2021-04-29 20:53:07 +03:00
parent 98c0b3a2b1
commit f8e05f8e3c
13 changed files with 11 additions and 251 deletions

View file

@ -354,75 +354,15 @@ namespace vm
}
template<typename T, typename AT>
friend bool operator ==(const null_t&, const _ptr_base<T, AT>& ptr)
constexpr bool operator ==(const _ptr_base<T, AT>& ptr) const
{
return !ptr;
}
template<typename T, typename AT>
friend bool operator ==(const _ptr_base<T, AT>& ptr, const null_t&)
constexpr bool operator <(const _ptr_base<T, AT>& ptr) const
{
return !ptr;
}
template<typename T, typename AT>
friend bool operator !=(const null_t&, const _ptr_base<T, AT>& ptr)
{
return ptr.operator bool();
}
template<typename T, typename AT>
friend bool operator !=(const _ptr_base<T, AT>& ptr, const null_t&)
{
return ptr.operator bool();
}
template<typename T, typename AT>
friend bool operator <(const null_t&, const _ptr_base<T, AT>& ptr)
{
return ptr.operator bool();
}
template<typename T, typename AT>
friend bool operator <(const _ptr_base<T, AT>&, const null_t&)
{
return false;
}
template<typename T, typename AT>
friend bool operator <=(const null_t&, const _ptr_base<T, AT>&)
{
return true;
}
template<typename T, typename AT>
friend bool operator <=(const _ptr_base<T, AT>& ptr, const null_t&)
{
return !ptr.operator bool();
}
template<typename T, typename AT>
friend bool operator >(const null_t&, const _ptr_base<T, AT>&)
{
return false;
}
template<typename T, typename AT>
friend bool operator >(const _ptr_base<T, AT>& ptr, const null_t&)
{
return ptr.operator bool();
}
template<typename T, typename AT>
friend bool operator >=(const null_t&, const _ptr_base<T, AT>& ptr)
{
return !ptr;
}
template<typename T, typename AT>
friend bool operator >=(const _ptr_base<T, AT>&, const null_t&)
{
return true;
return 0 < ptr.addr();
}
};
@ -436,12 +376,6 @@ inline vm::if_comparable_t<T1, T2, bool> operator ==(const vm::_ptr_base<T1, AT1
return left.addr() == right.addr();
}
template<typename T1, typename AT1, typename T2, typename AT2>
inline vm::if_comparable_t<T1, T2, bool> operator !=(const vm::_ptr_base<T1, AT1>& left, const vm::_ptr_base<T2, AT2>& right)
{
return left.addr() != right.addr();
}
template<typename T1, typename AT1, typename T2, typename AT2>
inline vm::if_comparable_t<T1, T2, bool> operator <(const vm::_ptr_base<T1, AT1>& left, const vm::_ptr_base<T2, AT2>& right)
{