std::strong_equal
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <compare> | ||
| template< class T > constexpr std::strong_equality strong_equal(const T& a, const T& b); | (since C++20) | |
Compares two values using 3-way comparison and produces a result of type std::strong_equality
Specifically,
- If the expression a <=> b is well-formed and its result is convertible to std::strong_equality, returns that result.
- Otherwise, if the expression a <=> b is well-formed, but its result is not convertible to std::strong_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::strong_equality::equal
- otherwise, returns std::strong_equality::nonequal
 
- Otherwise, the function is defined as deleted.
Parameters
| a, b | - | values to compare | 
Return value
A value of type std::strong_equality, as described above.
Notes
Example
| This section is incomplete Reason: no example | 
See also
| (C++20) | the result type of 3-way comparison that supports only equality/inequality and is substitutable (class) | 
| (C++20) | performs 3-way comparison and produces a result of type std::strong_ordering (function template) | 
| (C++20) | performs 3-way comparison and produces a result of type std::partial_ordering (function template) | 
| (C++20) | performs 3-way comparison and produces a result of type std::weak_ordering (function template) | 
| (C++20) | performs 3-way comparison and produces a result of type std::weak_equality (function template) |