From 0633aacc63dbcb72b6e44c12627b8b7f1c123e1c Mon Sep 17 00:00:00 2001 From: lisyarus Date: Thu, 16 Mar 2023 20:09:32 +0300 Subject: [PATCH] Add group value iterators operator- --- libs/group/include/psemek/group/cyclic.hpp | 7 ++++++- libs/group/include/psemek/group/dihedral.hpp | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libs/group/include/psemek/group/cyclic.hpp b/libs/group/include/psemek/group/cyclic.hpp index 601d3340..29b2bce8 100644 --- a/libs/group/include/psemek/group/cyclic.hpp +++ b/libs/group/include/psemek/group/cyclic.hpp @@ -52,7 +52,7 @@ namespace psemek::group struct value_iterator { - using difference_type = int; + using difference_type = Repr; using value_type = cyclic; using pointer = value_type *; using reference = value_type &; @@ -75,6 +75,11 @@ namespace psemek::group { return it1.repr == it2.repr; } + + friend auto operator - (value_iterator const & it1, value_iterator const & it2) + { + return it2.repr - it1.repr; + } }; static auto values() diff --git a/libs/group/include/psemek/group/dihedral.hpp b/libs/group/include/psemek/group/dihedral.hpp index 33899469..95e2e382 100644 --- a/libs/group/include/psemek/group/dihedral.hpp +++ b/libs/group/include/psemek/group/dihedral.hpp @@ -84,7 +84,7 @@ namespace psemek::group struct value_iterator { - using difference_type = int; + using difference_type = Repr; using value_type = dihedral; using pointer = value_type *; using reference = value_type &; @@ -107,6 +107,11 @@ namespace psemek::group { return it1.repr == it2.repr; } + + friend auto operator - (value_iterator const & it1, value_iterator const & it2) + { + return it2.repr - it1.repr; + } }; static auto values()