#pragma once template struct Modulo { friend Derived operator%(const Derived& lhs, const Derived& rhs) { return Derived(lhs.value % rhs.value); } };