mirror of
https://github.com/opencv/opencv.git
synced 2025-06-07 17:44:04 +08:00
core: fix compilation of copy ctors/assignment operators with GCC 4.x
This commit is contained in:
parent
03a08435e2
commit
e75387f029
@ -162,13 +162,23 @@ public:
|
|||||||
//! default constructor
|
//! default constructor
|
||||||
Point_();
|
Point_();
|
||||||
Point_(_Tp _x, _Tp _y);
|
Point_(_Tp _x, _Tp _y);
|
||||||
|
#if (defined(__GNUC__) && __GNUC__ < 5) // GCC 4.x bug. Details: https://github.com/opencv/opencv/pull/20837
|
||||||
|
Point_(const Point_& pt);
|
||||||
|
Point_(Point_&& pt) CV_NOEXCEPT = default;
|
||||||
|
#elif OPENCV_ABI_COMPATIBILITY < 500
|
||||||
Point_(const Point_& pt) = default;
|
Point_(const Point_& pt) = default;
|
||||||
Point_(Point_&& pt) CV_NOEXCEPT = default;
|
Point_(Point_&& pt) CV_NOEXCEPT = default;
|
||||||
|
#endif
|
||||||
Point_(const Size_<_Tp>& sz);
|
Point_(const Size_<_Tp>& sz);
|
||||||
Point_(const Vec<_Tp, 2>& v);
|
Point_(const Vec<_Tp, 2>& v);
|
||||||
|
|
||||||
|
#if (defined(__GNUC__) && __GNUC__ < 5) // GCC 4.x bug. Details: https://github.com/opencv/opencv/pull/20837
|
||||||
|
Point_& operator = (const Point_& pt);
|
||||||
|
Point_& operator = (Point_&& pt) CV_NOEXCEPT = default;
|
||||||
|
#elif OPENCV_ABI_COMPATIBILITY < 500
|
||||||
Point_& operator = (const Point_& pt) = default;
|
Point_& operator = (const Point_& pt) = default;
|
||||||
Point_& operator = (Point_&& pt) CV_NOEXCEPT = default;
|
Point_& operator = (Point_&& pt) CV_NOEXCEPT = default;
|
||||||
|
#endif
|
||||||
//! conversion to another data type
|
//! conversion to another data type
|
||||||
template<typename _Tp2> operator Point_<_Tp2>() const;
|
template<typename _Tp2> operator Point_<_Tp2>() const;
|
||||||
|
|
||||||
@ -244,13 +254,17 @@ public:
|
|||||||
//! default constructor
|
//! default constructor
|
||||||
Point3_();
|
Point3_();
|
||||||
Point3_(_Tp _x, _Tp _y, _Tp _z);
|
Point3_(_Tp _x, _Tp _y, _Tp _z);
|
||||||
|
#if OPENCV_ABI_COMPATIBILITY < 500
|
||||||
Point3_(const Point3_& pt) = default;
|
Point3_(const Point3_& pt) = default;
|
||||||
Point3_(Point3_&& pt) CV_NOEXCEPT = default;
|
Point3_(Point3_&& pt) CV_NOEXCEPT = default;
|
||||||
|
#endif
|
||||||
explicit Point3_(const Point_<_Tp>& pt);
|
explicit Point3_(const Point_<_Tp>& pt);
|
||||||
Point3_(const Vec<_Tp, 3>& v);
|
Point3_(const Vec<_Tp, 3>& v);
|
||||||
|
|
||||||
|
#if OPENCV_ABI_COMPATIBILITY < 500
|
||||||
Point3_& operator = (const Point3_& pt) = default;
|
Point3_& operator = (const Point3_& pt) = default;
|
||||||
Point3_& operator = (Point3_&& pt) CV_NOEXCEPT = default;
|
Point3_& operator = (Point3_&& pt) CV_NOEXCEPT = default;
|
||||||
|
#endif
|
||||||
//! conversion to another data type
|
//! conversion to another data type
|
||||||
template<typename _Tp2> operator Point3_<_Tp2>() const;
|
template<typename _Tp2> operator Point3_<_Tp2>() const;
|
||||||
//! conversion to cv::Vec<>
|
//! conversion to cv::Vec<>
|
||||||
@ -320,12 +334,16 @@ public:
|
|||||||
//! default constructor
|
//! default constructor
|
||||||
Size_();
|
Size_();
|
||||||
Size_(_Tp _width, _Tp _height);
|
Size_(_Tp _width, _Tp _height);
|
||||||
|
#if OPENCV_ABI_COMPATIBILITY < 500
|
||||||
Size_(const Size_& sz) = default;
|
Size_(const Size_& sz) = default;
|
||||||
Size_(Size_&& sz) CV_NOEXCEPT = default;
|
Size_(Size_&& sz) CV_NOEXCEPT = default;
|
||||||
|
#endif
|
||||||
Size_(const Point_<_Tp>& pt);
|
Size_(const Point_<_Tp>& pt);
|
||||||
|
|
||||||
|
#if OPENCV_ABI_COMPATIBILITY < 500
|
||||||
Size_& operator = (const Size_& sz) = default;
|
Size_& operator = (const Size_& sz) = default;
|
||||||
Size_& operator = (Size_&& sz) CV_NOEXCEPT = default;
|
Size_& operator = (Size_&& sz) CV_NOEXCEPT = default;
|
||||||
|
#endif
|
||||||
//! the area (width*height)
|
//! the area (width*height)
|
||||||
_Tp area() const;
|
_Tp area() const;
|
||||||
//! aspect ratio (width/height)
|
//! aspect ratio (width/height)
|
||||||
@ -425,13 +443,17 @@ public:
|
|||||||
//! default constructor
|
//! default constructor
|
||||||
Rect_();
|
Rect_();
|
||||||
Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height);
|
Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height);
|
||||||
|
#if OPENCV_ABI_COMPATIBILITY < 500
|
||||||
Rect_(const Rect_& r) = default;
|
Rect_(const Rect_& r) = default;
|
||||||
Rect_(Rect_&& r) CV_NOEXCEPT = default;
|
Rect_(Rect_&& r) CV_NOEXCEPT = default;
|
||||||
|
#endif
|
||||||
Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz);
|
Rect_(const Point_<_Tp>& org, const Size_<_Tp>& sz);
|
||||||
Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2);
|
Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2);
|
||||||
|
|
||||||
|
#if OPENCV_ABI_COMPATIBILITY < 500
|
||||||
Rect_& operator = (const Rect_& r) = default;
|
Rect_& operator = (const Rect_& r) = default;
|
||||||
Rect_& operator = (Rect_&& r) CV_NOEXCEPT = default;
|
Rect_& operator = (Rect_&& r) CV_NOEXCEPT = default;
|
||||||
|
#endif
|
||||||
//! the top-left corner
|
//! the top-left corner
|
||||||
Point_<_Tp> tl() const;
|
Point_<_Tp> tl() const;
|
||||||
//! the bottom-right corner
|
//! the bottom-right corner
|
||||||
@ -1164,6 +1186,12 @@ template<typename _Tp> inline
|
|||||||
Point_<_Tp>::Point_(_Tp _x, _Tp _y)
|
Point_<_Tp>::Point_(_Tp _x, _Tp _y)
|
||||||
: x(_x), y(_y) {}
|
: x(_x), y(_y) {}
|
||||||
|
|
||||||
|
#if (defined(__GNUC__) && __GNUC__ < 5) // GCC 4.x bug. Details: https://github.com/opencv/opencv/pull/20837
|
||||||
|
template<typename _Tp> inline
|
||||||
|
Point_<_Tp>::Point_(const Point_& pt)
|
||||||
|
: x(pt.x), y(pt.y) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp> inline
|
template<typename _Tp> inline
|
||||||
Point_<_Tp>::Point_(const Size_<_Tp>& sz)
|
Point_<_Tp>::Point_(const Size_<_Tp>& sz)
|
||||||
: x(sz.width), y(sz.height) {}
|
: x(sz.width), y(sz.height) {}
|
||||||
@ -1172,6 +1200,15 @@ template<typename _Tp> inline
|
|||||||
Point_<_Tp>::Point_(const Vec<_Tp,2>& v)
|
Point_<_Tp>::Point_(const Vec<_Tp,2>& v)
|
||||||
: x(v[0]), y(v[1]) {}
|
: x(v[0]), y(v[1]) {}
|
||||||
|
|
||||||
|
#if (defined(__GNUC__) && __GNUC__ < 5) // GCC 4.x bug. Details: https://github.com/opencv/opencv/pull/20837
|
||||||
|
template<typename _Tp> inline
|
||||||
|
Point_<_Tp>& Point_<_Tp>::operator = (const Point_& pt)
|
||||||
|
{
|
||||||
|
x = pt.x; y = pt.y;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
template<typename _Tp> template<typename _Tp2> inline
|
template<typename _Tp> template<typename _Tp2> inline
|
||||||
Point_<_Tp>::operator Point_<_Tp2>() const
|
Point_<_Tp>::operator Point_<_Tp2>() const
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user