This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub kmyk/competitive-programming-library
#include "monoids/dual.hpp"
#pragma once /** * @see http://hackage.haskell.org/package/base/docs/Data-Monoid.html#t:Dual */ template <class Monoid> struct dual_monoid { typedef typename Monoid::value_type value_type; Monoid base; value_type unit() const { return base.unit(); } value_type mult(const value_type & a, const value_type & b) const { return base.mult(b, a); } };
#line 2 "monoids/dual.hpp" /** * @see http://hackage.haskell.org/package/base/docs/Data-Monoid.html#t:Dual */ template <class Monoid> struct dual_monoid { typedef typename Monoid::value_type value_type; Monoid base; value_type unit() const { return base.unit(); } value_type mult(const value_type & a, const value_type & b) const { return base.mult(b, a); } };