Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::algebra::HasCompoundGroupOperatorsMul Concept Referenceexport

Pure syntactic shape: T supports the in-place multiplicative-group operator surface *=, /=. More...

Concept definition

template<typename T>
{ a *= b } -> std::same_as<T&>;
{ a /= b } -> std::same_as<T&>;
}
Pure syntactic shape: T supports the in-place multiplicative-group operator surface *=,...
Definition group.cppm:208

Detailed Description

Pure syntactic shape: T supports the in-place multiplicative-group operator surface *=, /=.

The multiplicative companion of HasCompoundGroupOperatorsAdd. Where HasGroupOperatorsMul checks the out-of-place binary operators *, / (plus the T{1} unit), this concept checks the in-place compound forms *=, /=. Both yield T& (the standard form).

The same [expr.ass]/3 narrowing-after-promotion rule that makes HasCompoundGroupOperatorsAdd<unsigned short> fire also applies to *= / /=, so narrow unsigned types close under the in-place forms but not under the out-of-place ones. Unlike its additive sibling, this concept does not require a multiplicative unit (the unit is a value-level claim, captured by HasGroupOperatorsMul); the in-place surface is purely about state-mutation closure.

Introduced under #394.