From 8fc1848918bf3714e47dca3c054a95122baf7b7b Mon Sep 17 00:00:00 2001 From: Marc Rollins Date: Mon, 18 Aug 2014 12:25:48 -0700 Subject: [PATCH] Simplifying arithmetic and comparison operator implementation. Implementing + and - in terms of += and -=. Implementing != in terms of ==. --- modules/core/include/opencv2/core/types.hpp | 28 +++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/modules/core/include/opencv2/core/types.hpp b/modules/core/include/opencv2/core/types.hpp index b8f943453..ea7b4dcba 100644 --- a/modules/core/include/opencv2/core/types.hpp +++ b/modules/core/include/opencv2/core/types.hpp @@ -1341,18 +1341,6 @@ Size_<_Tp> operator / (Size_<_Tp> a, _Tp b) return a; } -template static inline -Size_<_Tp> operator + (const Size_<_Tp>& a, const Size_<_Tp>& b) -{ - return Size_<_Tp>(a.width + b.width, a.height + b.height); -} - -template static inline -Size_<_Tp> operator - (const Size_<_Tp>& a, const Size_<_Tp>& b) -{ - return Size_<_Tp>(a.width - b.width, a.height - b.height); -} - template static inline Size_<_Tp>& operator += (Size_<_Tp>& a, const Size_<_Tp>& b) { @@ -1361,6 +1349,13 @@ Size_<_Tp>& operator += (Size_<_Tp>& a, const Size_<_Tp>& b) return a; } +template static inline +Size_<_Tp> operator + (Size_<_Tp> a, const Size_<_Tp>& b) +{ + a += b; + return a; +} + template static inline Size_<_Tp>& operator -= (Size_<_Tp>& a, const Size_<_Tp>& b) { @@ -1369,6 +1364,13 @@ Size_<_Tp>& operator -= (Size_<_Tp>& a, const Size_<_Tp>& b) return a; } +template static inline +Size_<_Tp> operator - (Size_<_Tp> a, const Size_<_Tp>& b) +{ + a -= b; + return a; +} + template static inline bool operator == (const Size_<_Tp>& a, const Size_<_Tp>& b) { @@ -1378,7 +1380,7 @@ bool operator == (const Size_<_Tp>& a, const Size_<_Tp>& b) template static inline bool operator != (const Size_<_Tp>& a, const Size_<_Tp>& b) { - return a.width != b.width || a.height != b.height; + return !(a == b); }