Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
RingRegistration< T, Zero, One, Add, Mult > Struct Template Reference

A rig whose additive monoid is an abelian group (i.e. has additive inverses). Mult is not required to commute here; see CommutativeRingRegistration for that. More...

Inheritance diagram for RingRegistration< T, Zero, One, Add, Mult >:
Collaboration diagram for RingRegistration< T, Zero, One, Add, Mult >:

Static Public Attributes

template<typename Op>
static constexpr bool is_invertible_v = std::same_as<Op, Add>
Static Public Attributes inherited from RigRegistration< T, Zero, One, Add, Mult >
template<typename Op>
static constexpr bool is_associative_v
template<typename Op>
static constexpr bool is_commutative_v = std::same_as<Op, Add>
template<typename Op>
static constexpr bool is_periodic_v
template<typename Op>
static constexpr T unit_v = std::same_as<Op, Add> ? T(Zero) : T(One)
template<typename MultOp, typename AddOp>
static constexpr bool is_distributive_v

Additional Inherited Members

Public Types inherited from RigRegistration< T, Zero, One, Add, Mult >
using Domain = T
using dedekind_registration_tag = void

Detailed Description

template<typename T, auto Zero, auto One, typename Add = std::plus<T>, typename Mult = std::multiplies<T>>
struct RingRegistration< T, Zero, One, Add, Mult >

A rig whose additive monoid is an abelian group (i.e. has additive inverses). Mult is not required to commute here; see CommutativeRingRegistration for that.


The documentation for this struct was generated from the following file: