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

A ring whose multiplication is also commutative. More...

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

Static Public Attributes

template<typename Op>
static constexpr bool is_commutative_v
Static Public Attributes inherited from RingRegistration< T, Zero, One, Add, Mult >
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 CommutativeRingRegistration< T, Zero, One, Add, Mult >

A ring whose multiplication is also commutative.

Member Data Documentation

◆ is_commutative_v

template<typename T, auto Zero, auto One, typename Add = std::plus<T>, typename Mult = std::multiplies<T>>
template<typename Op>
bool CommutativeRingRegistration< T, Zero, One, Add, Mult >::is_commutative_v
staticconstexpr
Initial value:
=
std::same_as<Op, Add> || std::same_as<Op, Mult>

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