From 06e6a36ceac6bb460227aacf1cc41d8dc45887e1 Mon Sep 17 00:00:00 2001
From: Fernando Cacciola The preceding generic function and function object have the following semantics:
-If both x and y have valid pointees, it compares values via (*x == *y) or (*x <
-*y).
-If only one has a valid pointee, returns false.
-If both have invalid pointees, returns true.(*x == *y)
.
+If only one has a valid pointee, returns false
.
+If both have invalid pointees, returns true
.
Less-than relation:
template<class OptionalPointee> @@ -135,11 +134,12 @@ struct less_pointees_t : std::binary_function<OptionalPointee,OptionalPointee } ;
The preceding generic function and function object have the following semantics:
-If both x and y have valid pointees, it compares values via (*x == *y) or (*x <
-*y).
-If only one has a valid pointee, returns false.
-If both have invalid pointees, returns false.
All these functions and function
+If y has an invalid pointee, returns false
.
+Else, if x has an invalid pointee, returns true
.
+Else, ( x and y have valid pointees), compares values via (*x <
+*y).
+All these functions and function
objects are is implemented in compare_pointees.hpp
Notice that OptionalPointee does not imply aliasing (and optional<> for instance does not alias); so direct usage of relational operators with the implied aliasing of shallow semantics