xtd 0.2.0
Loading...
Searching...
No Matches
comparison_operators.hpp
Go to the documentation of this file.
1
4#pragma once
5#define __XTD_STD_INTERNAL__
7#undef __XTD_STD_INTERNAL__
8#include <compare>
9
11namespace xtd {
13 namespace extensions {
30 template<class type_t, class comparable_t>
31 class comparison_operators {
32 public:
34
43 friend auto operator <=>(const type_t& lhs, const type_t& rhs) noexcept -> std::strong_ordering {
44 if (lhs.compare_to(rhs) < 0) return std::strong_ordering::less;
45 if (lhs.compare_to(rhs) > 0) return std::strong_ordering::greater;
46 return std::strong_ordering::equivalent;
47 }
48
49
50 private:
51 friend comparable_t;
52 comparison_operators() = default;
53 };
54 }
55}
Internal comparable operators definition.
Definition comparison_operators.hpp:31
friend auto operator<=>(const type_t &lhs, const type_t &rhs) noexcept -> std::strong_ordering
Three-way comparison operator with specidied lhs ans rhs values.
Definition comparison_operators.hpp:43
The xtd::extensions namespace contains interface extensions.
Definition comparison_operators.hpp:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8