summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorWolfgang Draxinger <code@datenwolf.net>2020-03-30 20:49:39 +0200
committerWolfgang Draxinger <code@datenwolf.net>2020-03-30 20:49:39 +0200
commit0ed25c2edbd55cc0532f6ca9f919fb09b8537179 (patch)
tree72fe3af6ee4536fc952668b2220b57a42e7ea04b /include
parent51be437989033e28aedb9ba8d72c2b2fcadd463e (diff)
parent793e8c792d8118955de39c050fbc3fe3eb46c4c6 (diff)
downloaddwu-0ed25c2edbd55cc0532f6ca9f919fb09b8537179.tar.gz
dwu-0ed25c2edbd55cc0532f6ca9f919fb09b8537179.tar.bz2
Merge branch 'master' of datenwolf.net:/srv/git/dwu
Diffstat (limited to 'include')
-rw-r--r--include/dwu/operators30
1 files changed, 27 insertions, 3 deletions
diff --git a/include/dwu/operators b/include/dwu/operators
index 1decb51..b85a92a 100644
--- a/include/dwu/operators
+++ b/include/dwu/operators
@@ -92,16 +92,22 @@ namespace dwu {
} \
return l; \
}
+namespace arithmetic {
DWU_OPERATORS(+)
DWU_OPERATORS(-)
DWU_OPERATORS(*)
DWU_OPERATORS(/)
DWU_OPERATORS(%)
+}
+namespace bitwise {
DWU_OPERATORS(^)
DWU_OPERATORS(&)
DWU_OPERATORS(|)
+}
+namespace shift {
DWU_OPERATORS(>>)
DWU_OPERATORS(<<)
+}
#undef DWU_OPERATORS
}
@@ -111,7 +117,7 @@ DWU_OPERATORS(<<)
template< \
template<typename,typename> class C, \
typename Tl, typename Al, \
- typename Tr, typename Ar > \
+ typename Tr > \
C<Tl,Al> operator O (C<Tl,Al> const &l, Tr const &r) { \
C<Tl,Al> v(l.size()); \
auto vi = v.begin(); auto li = l.begin(); \
@@ -122,7 +128,7 @@ DWU_OPERATORS(<<)
} \
template< \
template<typename,typename> class C, \
- typename Tl, typename Al, \
+ typename Tl, \
typename Tr, typename Ar > \
C<Tr,Ar> operator O (Tl const &l, C<Tr,Ar> const &r) { \
C<Tr,Ar> v(r.size()); \
@@ -148,21 +154,27 @@ DWU_OPERATORS(<<)
template< \
template<typename,typename> class C, \
typename Tl, typename Al, \
- typename Tr, typename Ar > \
+ typename Tr > \
C<Tl,Al>& operator O##= (C<Tl,Al> &l, Tr const &r){ \
for(auto &x:l){ x O##= r; } \
return l; \
}
+namespace arithmetic {
DWU_OPERATORS_XT(+)
DWU_OPERATORS_XT(-)
DWU_OPERATORS_XT(*)
DWU_OPERATORS_XT(/)
DWU_OPERATORS_XT(%)
+}
+namespace bitwise {
DWU_OPERATORS_XT(^)
DWU_OPERATORS_XT(&)
DWU_OPERATORS_XT(|)
+}
+namespace shift {
DWU_OPERATORS_XT(>>)
DWU_OPERATORS_XT(<<)
+}
#undef DWU_OPERATORS_XT
}
@@ -193,16 +205,22 @@ DWU_OPERATORS_XT(<<)
} \
return l; \
}
+namespace arithmetic {
DWU_OPERATORS_XC(+)
DWU_OPERATORS_XC(-)
DWU_OPERATORS_XC(*)
DWU_OPERATORS_XC(/)
DWU_OPERATORS_XC(%)
+}
+namespace bitwise {
DWU_OPERATORS_XC(^)
DWU_OPERATORS_XC(&)
DWU_OPERATORS_XC(|)
+}
+namespace shift {
DWU_OPERATORS_XC(>>)
DWU_OPERATORS_XC(<<)
+}
#undef DWU_OPERATORS_XC
}
@@ -235,16 +253,22 @@ DWU_OPERATORS_XC(<<)
} \
return l; \
}
+namespace arithmetic {
DWU_OPERATORS_XCXT(+)
DWU_OPERATORS_XCXT(-)
DWU_OPERATORS_XCXT(*)
DWU_OPERATORS_XCXT(/)
DWU_OPERATORS_XCXT(%)
+}
+namespace bitwise {
DWU_OPERATORS_XCXT(^)
DWU_OPERATORS_XCXT(&)
DWU_OPERATORS_XCXT(|)
+}
+namespace shift {
DWU_OPERATORS_XCXT(>>)
DWU_OPERATORS_XCXT(<<)
+}
#undef DWU_OPERATORS_XCXT
}