Namespaces
Variants
Views
Actions

std::weak_equal

From natekohl.net
< cpp‎ | utility
 
 
 
Defined in header <compare>
template< class T >
constexpr std::weak_equality weak_equal(const T& a, const T& b);
(since C++20)

Compares two values using 3-way comparison and produces a result of type std::weak_equality

Specifically,

  • If the expression a <=> b is well-formed and its result is convertible to std::weak_equality, returns that result.
  • Otherwise, if the expression a <=> b is well-formed, but its result is not convertible to std::weak_equality, then the function is defined as deleted.
  • Otherwise, if the expression a <=> b is ill-formed, but the expression a == b is well-formed and convertible to bool,
  • if a == b is true, returns std::weak_equality::equivalent
  • otherwise, returns std::weak_equality::nonequivalent
  • Otherwise, the function is defined as deleted.

Contents

[edit] Parameters

a, b - values to compare

[edit] Return value

A value of type std::weak_equality, as described above.

[edit] Notes

[edit] Example

[edit] See also

the result type of 3-way comparison that supports only equality/inequality and is not substitutable
(class) [edit]
performs 3-way comparison and produces a result of type std::strong_equality
(function template) [edit]
performs 3-way comparison and produces a result of type std::strong_ordering
(function template) [edit]
performs 3-way comparison and produces a result of type std::partial_ordering
(function template) [edit]
performs 3-way comparison and produces a result of type std::weak_ordering
(function template) [edit]