Specifies the traits for a given functor. More...
#include <FunctorTraits.hpp>
Additional Inherited Members | |
Public Types inherited from sp::f::TraitsBase< Traits< Functor >, Functor > | |
| using | Functor = Functor |
| The described functor. More... | |
| using | Inverse = void |
| The inverse of this functor. More... | |
| using | GroupInverseOf = void |
| The functor defining a group that this functor is an inverse of. More... | |
| using | UnaryGroupInverse = void |
| The functor that acts as the unary inverse for this functor. More... | |
| using | BinaryGroupInverse = void |
| The functor that acts as the binary inverse for this functor. More... | |
Static Public Attributes inherited from sp::f::TraitsBase< Traits< Functor >, Functor > | |
| static constexpr bool | Total |
| The function is defined for all input tuples (division is not). More... | |
| static constexpr bool | Even |
| f(-x) = f(x). More... | |
| static constexpr bool | Odd |
| f(-x) = -f(x). More... | |
| static constexpr bool | Associative |
| f(f(a, b), c) = f(a, f(b, c)). More... | |
| static constexpr bool | Commutative |
| f(a, b) = f(b, a). More... | |
| static constexpr bool | Anticommutative |
| f(a, b) = -f(b, a). More... | |
| static constexpr bool | Invertible |
| For all x, there exists y such that f(x, y) = f(y, x) = IdentityValue. More... | |
| static constexpr bool | HasIdentity |
| The functor has an identity, c, such that f(x, c) = x. More... | |
| static constexpr bool | HasAbsorbingElement |
| The functor has an absorbing element, c, such that f(c, x) = c. More... | |
| static constexpr bool | LeftDistributiveOver |
| The functor is left-distributes under g. More... | |
| static constexpr bool | RightDistributiveOver |
| The functor is right-distributes under g. More... | |
| static constexpr bool | Involutory |
| f(f(x)) = x. More... | |
| static constexpr bool | Monoid |
| Simultaneously total, associative, and with identity. More... | |
| static constexpr bool | Group |
| An invertible monoid. More... | |
| static constexpr bool | AbelianMonoid |
| A commutative monoid. More... | |
| static constexpr bool | AbelianGroup |
| A commutative group. More... | |
Specifies the traits for a given functor.
This should be specialized for functors for which the defaults in TraitsBase are not appropriate. Specializations should inherit from TraitsBase and override its members.
| Functor | The functor whose traits are being described. |