Simplifying arithmetic and comparison operator implementation.

Implementing + and - in terms of += and -=.
Implementing != in terms of ==.
pull/3127/head
Marc Rollins 11 years ago
parent d3d9b538c7
commit 8fc1848918
  1. 24
      modules/core/include/opencv2/core/types.hpp

@ -1342,30 +1342,32 @@ Size_<_Tp> operator / (Size_<_Tp> a, _Tp b)
} }
template<typename _Tp> static inline template<typename _Tp> static inline
Size_<_Tp> operator + (const Size_<_Tp>& a, const Size_<_Tp>& b) Size_<_Tp>& operator += (Size_<_Tp>& a, const Size_<_Tp>& b)
{ {
return Size_<_Tp>(a.width + b.width, a.height + b.height); a.width += b.width;
a.height += b.height;
return a;
} }
template<typename _Tp> static inline template<typename _Tp> static inline
Size_<_Tp> operator - (const Size_<_Tp>& a, const Size_<_Tp>& b) Size_<_Tp> operator + (Size_<_Tp> a, const Size_<_Tp>& b)
{ {
return Size_<_Tp>(a.width - b.width, a.height - b.height); a += b;
return a;
} }
template<typename _Tp> static inline template<typename _Tp> static inline
Size_<_Tp>& operator += (Size_<_Tp>& a, const Size_<_Tp>& b) Size_<_Tp>& operator -= (Size_<_Tp>& a, const Size_<_Tp>& b)
{ {
a.width += b.width; a.width -= b.width;
a.height += b.height; a.height -= b.height;
return a; return a;
} }
template<typename _Tp> static inline template<typename _Tp> static inline
Size_<_Tp>& operator -= (Size_<_Tp>& a, const Size_<_Tp>& b) Size_<_Tp> operator - (Size_<_Tp> a, const Size_<_Tp>& b)
{ {
a.width -= b.width; a -= b;
a.height -= b.height;
return a; return a;
} }
@ -1378,7 +1380,7 @@ bool operator == (const Size_<_Tp>& a, const Size_<_Tp>& b)
template<typename _Tp> static inline template<typename _Tp> static inline
bool operator != (const Size_<_Tp>& a, const Size_<_Tp>& b) bool operator != (const Size_<_Tp>& a, const Size_<_Tp>& b)
{ {
return a.width != b.width || a.height != b.height; return !(a == b);
} }

Loading…
Cancel
Save