std::experi...not_equal_to(3)
π std::experimental::ranges::not_equal_to π
okay so bestie, this page is from the C++ Standard Libary manual β yes, βLibary,β thatβs the headerβs spelling, not me β and the page name is std::experi...not_equal_to(3). Itβs giving functional-object-for-comparisons realness, and weβre gonna get into every single detail. no cap. β¨
π NAME π
std::experimental::ranges::not_equal_to - std::experimental::ranges::not_equal_to
π¦ Synopsis π¦
Defined in header <experimental/ranges/functional>
template< class T = void >
requires EqualityComparable<T> ||
Same<T, void> ||
/* == on two const T lvalues invokes a built-in operator
comparing pointers */
struct not_equal_to;
template<>
struct not_equal_to<void>;
this page marks stuff with (ranges TS) twice β once for the primary template and once for the not_equal_to<void> specialization. keep that in mind, bestie. π«Ά
Function object for performing comparisons. The primary template invokes operator == on const lvalues of type T and negates the result. The specialization not_equal_to<void> deduces the parameter types of the function call operator from the arguments (but not the return type).
All specializations of not_equal_to are Semiregular.
π Member types π
- Member type:
is_transparentβ member only ofnot_equal_to<void>specialization. - Definition:
/* unspecified */
π Member functions π
operator()β checks if the arguments are not equal (public member function).
π std::experimental::ranges::not_equal_to::operator() π
β¨ (1) β¨
constexpr bool operator()(const T& x, const T& y) const;
(1) (member only of primary template)
- Compares
xandy. Equivalent toreturn !ranges::equal_to<>{}(x, y);.
β¨ (2) β¨
template< class T, class U >
requires EqualityComparableWith<T, U> ||
/* std::declval<T>() == std::declval<U>() resolves to
a built-in operator comparing pointers */
constexpr bool operator()(T&& t, U&& u) const;
(2) (member only of not_equal_to<void> specialization)
- Compares
tandu. Equivalent toreturn !ranges::equal_to<>{}(std::forward<T>(t), std::forward<U>(u));.
πΈ Notes πΈ
Unlike std::not_equal_to, ranges::not_equal_to requires both == and != to be valid (via the EqualityComparable and EqualityComparableWith constraints), and is entirely defined in terms of ranges::equal_to. However, the implementation is free to use operator!= directly, because those concepts require the results of == and != to be consistent.
π Example π
This section is incomplete.
Reason: no example π
not me with no exampleβ¦ itβs giving βtodoβ energy, but thatβs literally what the page says. π
π See also π
not_equal_toβ function object implementingx != y(class template)
β Category β
* Todo no example
mwah π source/version: http://cppreference.com Β· date: 2024.06.10 Β· page: std::experi...not_equal_to(3). periodt. π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms