}
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
-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
-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.height += b.height;
+ a.width -= b.width;
+ a.height -= b.height;
return a;
}
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.height -= b.height;
+ a -= b;
return a;
}
template<typename _Tp> static inline
bool operator != (const Size_<_Tp>& a, const Size_<_Tp>& b)
{
- return a.width != b.width || a.height != b.height;
+ return !(a == b);
}