coord: add modulus operators

This commit is contained in:
Danny Robson 2015-07-21 01:39:01 +10:00
parent 950fed7d81
commit d11bdb79b0

View File

@ -89,6 +89,7 @@ namespace util {
ELEMENT_OP(-) ELEMENT_OP(-)
ELEMENT_OP(*) ELEMENT_OP(*)
ELEMENT_OP(/) ELEMENT_OP(/)
ELEMENT_OP(%)
#undef ELEMENT_OP #undef ELEMENT_OP
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
@ -100,7 +101,7 @@ namespace util {
typename U, \ typename U, \
template <size_t,typename> class K \ template <size_t,typename> class K \
> \ > \
typename std::enable_if<std::is_fundamental<U>::value, K<S,T>>::type \ typename std::enable_if<std::is_fundamental<U>::value, K<S,T>>::type \
operator OP (U u, K<S,T> k) \ operator OP (U u, K<S,T> k) \
{ \ { \
K<S,T> out; \ K<S,T> out; \
@ -115,7 +116,7 @@ namespace util {
typename U, \ typename U, \
template <size_t,typename> class K \ template <size_t,typename> class K \
> \ > \
typename std::enable_if<std::is_fundamental<U>::value, K<S,T>>::type \ typename std::enable_if<std::is_fundamental<U>::value, K<S,T>>::type \
operator OP (K<S,T> k, U u) \ operator OP (K<S,T> k, U u) \
{ \ { \
K<S,T> out; \ K<S,T> out; \
@ -128,6 +129,7 @@ namespace util {
SCALAR_OP(-) SCALAR_OP(-)
SCALAR_OP(*) SCALAR_OP(*)
SCALAR_OP(/) SCALAR_OP(/)
SCALAR_OP(%)
#undef SCALAR_OP #undef SCALAR_OP
@ -151,6 +153,7 @@ namespace util {
SCALAR_OP(-=) SCALAR_OP(-=)
SCALAR_OP(*=) SCALAR_OP(*=)
SCALAR_OP(/=) SCALAR_OP(/=)
SCALAR_OP(%=)
#undef SCALAR_OP #undef SCALAR_OP
//------------------------------------------------------------------------- //-------------------------------------------------------------------------