From 8f5ea7dedadfbc71b7a2b1368828fa92655cb110 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Thu, 27 Apr 2017 14:32:06 +0100 Subject: [PATCH] core: avoid clash with _N define from ctype.h in headers This updates the public headers to use _Nm instead of _N in templates since _N is defined by the widely used ctype.h. --- modules/core/include/opencv2/core/mat.hpp | 28 +++---- modules/core/include/opencv2/core/mat.inl.hpp | 80 +++++++++---------- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/modules/core/include/opencv2/core/mat.hpp b/modules/core/include/opencv2/core/mat.hpp index cb77ed4edc..cba830c945 100644 --- a/modules/core/include/opencv2/core/mat.hpp +++ b/modules/core/include/opencv2/core/mat.hpp @@ -192,8 +192,8 @@ public: _InputArray(const std::vector& umv); #ifdef CV_CXX_STD_ARRAY - template _InputArray(const std::array<_Tp, _N>& arr); - template _InputArray(const std::array& arr); + template _InputArray(const std::array<_Tp, _Nm>& arr); + template _InputArray(const std::array& arr); #endif Mat getMat(int idx=-1) const; @@ -324,10 +324,10 @@ public: _OutputArray(const std::vector& vec); #ifdef CV_CXX_STD_ARRAY - template _OutputArray(std::array<_Tp, _N>& arr); - template _OutputArray(const std::array<_Tp, _N>& arr); - template _OutputArray(std::array& arr); - template _OutputArray(const std::array& arr); + template _OutputArray(std::array<_Tp, _Nm>& arr); + template _OutputArray(const std::array<_Tp, _Nm>& arr); + template _OutputArray(std::array& arr); + template _OutputArray(const std::array& arr); #endif bool fixedSize() const; @@ -390,10 +390,10 @@ public: _InputOutputArray(const std::vector& vec); #ifdef CV_CXX_STD_ARRAY - template _InputOutputArray(std::array<_Tp, _N>& arr); - template _InputOutputArray(const std::array<_Tp, _N>& arr); - template _InputOutputArray(std::array& arr); - template _InputOutputArray(const std::array& arr); + template _InputOutputArray(std::array<_Tp, _Nm>& arr); + template _InputOutputArray(const std::array<_Tp, _Nm>& arr); + template _InputOutputArray(std::array& arr); + template _InputOutputArray(const std::array& arr); #endif }; @@ -980,7 +980,7 @@ public: #ifdef CV_CXX_STD_ARRAY /** @overload */ - template explicit Mat(const std::array<_Tp, _N>& arr, bool copyData=false); + template explicit Mat(const std::array<_Tp, _Nm>& arr, bool copyData=false); #endif /** @overload @@ -1607,7 +1607,7 @@ public: template operator Matx<_Tp, m, n>() const; #ifdef CV_CXX_STD_ARRAY - template operator std::array<_Tp, _N>() const; + template operator std::array<_Tp, _Nm>() const; #endif /** @brief Reports whether the matrix is continuous or not. @@ -2156,7 +2156,7 @@ public: explicit Mat_(const MatCommaInitializer_<_Tp>& commaInitializer); #ifdef CV_CXX_STD_ARRAY - template explicit Mat_(const std::array<_Tp, _N>& arr, bool copyData=false); + template explicit Mat_(const std::array<_Tp, _Nm>& arr, bool copyData=false); #endif Mat_& operator = (const Mat& m); @@ -2255,7 +2255,7 @@ public: #ifdef CV_CXX_STD_ARRAY //! conversion to array. - template operator std::array<_Tp, _N>() const; + template operator std::array<_Tp, _Nm>() const; #endif //! conversion to Vec diff --git a/modules/core/include/opencv2/core/mat.inl.hpp b/modules/core/include/opencv2/core/mat.inl.hpp index 72bc915abf..b92cc360e6 100644 --- a/modules/core/include/opencv2/core/mat.inl.hpp +++ b/modules/core/include/opencv2/core/mat.inl.hpp @@ -78,13 +78,13 @@ _InputArray::_InputArray(const std::vector<_Tp>& vec) { init(FIXED_TYPE + STD_VECTOR + DataType<_Tp>::type + ACCESS_READ, &vec); } #ifdef CV_CXX_STD_ARRAY -template inline -_InputArray::_InputArray(const std::array<_Tp, _N>& arr) -{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_READ, arr.data(), Size(1, _N)); } +template inline +_InputArray::_InputArray(const std::array<_Tp, _Nm>& arr) +{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_READ, arr.data(), Size(1, _Nm)); } -template inline -_InputArray::_InputArray(const std::array& arr) -{ init(STD_ARRAY_MAT + ACCESS_READ, arr.data(), Size(1, _N)); } +template inline +_InputArray::_InputArray(const std::array& arr) +{ init(STD_ARRAY_MAT + ACCESS_READ, arr.data(), Size(1, _Nm)); } #endif inline @@ -162,13 +162,13 @@ _OutputArray::_OutputArray(std::vector<_Tp>& vec) { init(FIXED_TYPE + STD_VECTOR + DataType<_Tp>::type + ACCESS_WRITE, &vec); } #ifdef CV_CXX_STD_ARRAY -template inline -_OutputArray::_OutputArray(std::array<_Tp, _N>& arr) -{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_WRITE, arr.data(), Size(1, _N)); } +template inline +_OutputArray::_OutputArray(std::array<_Tp, _Nm>& arr) +{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_WRITE, arr.data(), Size(1, _Nm)); } -template inline -_OutputArray::_OutputArray(std::array& arr) -{ init(STD_ARRAY_MAT + ACCESS_WRITE, arr.data(), Size(1, _N)); } +template inline +_OutputArray::_OutputArray(std::array& arr) +{ init(STD_ARRAY_MAT + ACCESS_WRITE, arr.data(), Size(1, _Nm)); } #endif inline @@ -200,13 +200,13 @@ _OutputArray::_OutputArray(const std::vector<_Tp>& vec) { init(FIXED_TYPE + FIXED_SIZE + STD_VECTOR + DataType<_Tp>::type + ACCESS_WRITE, &vec); } #ifdef CV_CXX_STD_ARRAY -template inline -_OutputArray::_OutputArray(const std::array<_Tp, _N>& arr) -{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_WRITE, arr.data(), Size(1, _N)); } +template inline +_OutputArray::_OutputArray(const std::array<_Tp, _Nm>& arr) +{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_WRITE, arr.data(), Size(1, _Nm)); } -template inline -_OutputArray::_OutputArray(const std::array& arr) -{ init(FIXED_SIZE + STD_ARRAY_MAT + ACCESS_WRITE, arr.data(), Size(1, _N)); } +template inline +_OutputArray::_OutputArray(const std::array& arr) +{ init(FIXED_SIZE + STD_ARRAY_MAT + ACCESS_WRITE, arr.data(), Size(1, _Nm)); } #endif template inline @@ -277,13 +277,13 @@ _InputOutputArray::_InputOutputArray(std::vector<_Tp>& vec) { init(FIXED_TYPE + STD_VECTOR + DataType<_Tp>::type + ACCESS_RW, &vec); } #ifdef CV_CXX_STD_ARRAY -template inline -_InputOutputArray::_InputOutputArray(std::array<_Tp, _N>& arr) -{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_RW, arr.data(), Size(1, _N)); } +template inline +_InputOutputArray::_InputOutputArray(std::array<_Tp, _Nm>& arr) +{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_RW, arr.data(), Size(1, _Nm)); } -template inline -_InputOutputArray::_InputOutputArray(std::array& arr) -{ init(STD_ARRAY_MAT + ACCESS_RW, arr.data(), Size(1, _N)); } +template inline +_InputOutputArray::_InputOutputArray(std::array& arr) +{ init(STD_ARRAY_MAT + ACCESS_RW, arr.data(), Size(1, _Nm)); } #endif inline _InputOutputArray::_InputOutputArray(std::vector&) @@ -314,13 +314,13 @@ _InputOutputArray::_InputOutputArray(const std::vector<_Tp>& vec) { init(FIXED_TYPE + FIXED_SIZE + STD_VECTOR + DataType<_Tp>::type + ACCESS_RW, &vec); } #ifdef CV_CXX_STD_ARRAY -template inline -_InputOutputArray::_InputOutputArray(const std::array<_Tp, _N>& arr) -{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_RW, arr.data(), Size(1, _N)); } +template inline +_InputOutputArray::_InputOutputArray(const std::array<_Tp, _Nm>& arr) +{ init(FIXED_TYPE + FIXED_SIZE + STD_ARRAY + DataType<_Tp>::type + ACCESS_RW, arr.data(), Size(1, _Nm)); } -template inline -_InputOutputArray::_InputOutputArray(const std::array& arr) -{ init(FIXED_SIZE + STD_ARRAY_MAT + ACCESS_RW, arr.data(), Size(1, _N)); } +template inline +_InputOutputArray::_InputOutputArray(const std::array& arr) +{ init(FIXED_SIZE + STD_ARRAY_MAT + ACCESS_RW, arr.data(), Size(1, _Nm)); } #endif template inline @@ -558,8 +558,8 @@ Mat::Mat(const std::vector<_Tp>& vec, bool copyData) } #ifdef CV_CXX_STD_ARRAY -template inline -Mat::Mat(const std::array<_Tp, _N>& arr, bool copyData) +template inline +Mat::Mat(const std::array<_Tp, _Nm>& arr, bool copyData) : flags(MAGIC_VAL | DataType<_Tp>::type | CV_MAT_CONT_FLAG), dims(2), rows((int)arr.size()), cols(1), data(0), datastart(0), dataend(0), allocator(0), u(0), size(&rows) { @@ -1197,10 +1197,10 @@ Mat::operator std::vector<_Tp>() const } #ifdef CV_CXX_STD_ARRAY -template inline -Mat::operator std::array<_Tp, _N>() const +template inline +Mat::operator std::array<_Tp, _Nm>() const { - std::array<_Tp, _N> v; + std::array<_Tp, _Nm> v; copyTo(v); return v; } @@ -1561,8 +1561,8 @@ Mat_<_Tp>::Mat_(const std::vector<_Tp>& vec, bool copyData) {} #ifdef CV_CXX_STD_ARRAY -template template inline -Mat_<_Tp>::Mat_(const std::array<_Tp, _N>& arr, bool copyData) +template template inline +Mat_<_Tp>::Mat_(const std::array<_Tp, _Nm>& arr, bool copyData) : Mat(arr, copyData) {} #endif @@ -1845,10 +1845,10 @@ Mat_<_Tp>::operator std::vector<_Tp>() const } #ifdef CV_CXX_STD_ARRAY -template template inline -Mat_<_Tp>::operator std::array<_Tp, _N>() const +template template inline +Mat_<_Tp>::operator std::array<_Tp, _Nm>() const { - std::array<_Tp, _N> a; + std::array<_Tp, _Nm> a; copyTo(a); return a; }