monoid
コンセプト · モノイドの要件
template <class M>
concept monoid = requires {
typename M::value_type;
{ M::id() } -> std::same_as<typename M::value_type>;
{
M::op(std::declval<const typename M::value_type &>(), std::declval<const typename M::value_type &>())
} -> std::same_as<typename M::value_type>;
};
概要
モノイドの要件
値型 value_type、単位元 id()、二項演算 op() を持つこと。
テンプレートパラメータ
| 名前 | 説明 |
|---|---|
M |
判定対象の型 |
計算量
- コンパイル時制約で実行時計算量はない