Skip to the content.

:heavy_check_mark: library/algebra/monoid/Concepts.hpp

Depends on

Required by

Verified with

Code

#pragma once

template <class M>
concept monoid = requires(typename M::value_type x) {
    { M::op(x, x) } -> std::same_as<typename M::value_type>;
    { M::Lchop(x, x) };
    { M::Rchop(x, x) };
    { M::unit() } -> std::same_as<typename M::value_type>;
};
#line 2 "library/algebra/monoid/Concepts.hpp"

template <class M>
concept monoid = requires(typename M::value_type x) {
    { M::op(x, x) } -> std::same_as<typename M::value_type>;
    { M::Lchop(x, x) };
    { M::Rchop(x, x) };
    { M::unit() } -> std::same_as<typename M::value_type>;
};
Back to top page