diff options
author | Wolfgang Draxinger <code@datenwolf.net> | 2020-03-30 20:49:39 +0200 |
---|---|---|
committer | Wolfgang Draxinger <code@datenwolf.net> | 2020-03-30 20:49:39 +0200 |
commit | 0ed25c2edbd55cc0532f6ca9f919fb09b8537179 (patch) | |
tree | 72fe3af6ee4536fc952668b2220b57a42e7ea04b /include | |
parent | 51be437989033e28aedb9ba8d72c2b2fcadd463e (diff) | |
parent | 793e8c792d8118955de39c050fbc3fe3eb46c4c6 (diff) | |
download | dwu-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/operators | 30 |
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 } |