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()