-
-
Notifications
You must be signed in to change notification settings - Fork 56.5k
OpenCV and Eigen Scalar declarations overlap #21377
Copy link
Copy link
Closed
Description
While compiling OpenCV 4.5.5 with Visul Studio 2019 and Eigen support I get couple of warnings like this (all comes with "compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp"):
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Jacobi/Jacobi.h(455,1): warning C4459: declaration of 'Scalar' hides global declaration (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Users\Administrator\Downloads\opencv-4.5.5\modules\core\include\opencv2/core/types.hpp(691,25): message : see declaration of 'cv::Scalar' (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Jacobi/Jacobi.h(299): message : see reference to function template instantiation 'void Eigen::internal::apply_rotation_in_the_plane<Derived,Derived,std::complex<double>>(Eigen::DenseBase<Derived> &,Eigen::DenseBase<Derived> &,const Eigen::JacobiRotation<std::complex<double>> &)' being compiled
28> with
28> [
28> Derived=Eigen::Block<Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,-1,true>,1,-1,false>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexSchur.h(437): message : see reference to function template instantiation 'void Eigen::MatrixBase<Derived>::applyOnTheLeft<std::complex<double>>(Eigen::EigenBase<Derived>::Index,Eigen::EigenBase<Derived>::Index,const Eigen::JacobiRotation<std::complex<double>> &)' being compiled
28> with
28> [
28> Derived=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,-1,true>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexSchur.h(437): message : see reference to function template instantiation 'void Eigen::MatrixBase<Derived>::applyOnTheLeft<std::complex<double>>(Eigen::EigenBase<Derived>::Index,Eigen::EigenBase<Derived>::Index,const Eigen::JacobiRotation<std::complex<double>> &)' being compiled
28> with
28> [
28> Derived=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,-1,true>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexSchur.h(391): message : while compiling class template member function 'void Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>>::reduceToTriangularForm(bool)' (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexSchur.h(349): message : see reference to function template instantiation 'void Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>>::reduceToTriangularForm(bool)' being compiled (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexSchur.h(338): message : see reference to function template instantiation 'Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>> &Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>>::computeFromHessenberg<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>>(const HessMatrixType &,const OrthMatrixType &,bool)' being compiled
28> with
28> [
28> HessMatrixType=Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,
28> OrthMatrixType=Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexSchur.h(338): message : see reference to function template instantiation 'Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>> &Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>>::computeFromHessenberg<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>>(const HessMatrixType &,const OrthMatrixType &,bool)' being compiled
28> with
28> [
28> HessMatrixType=Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,
28> OrthMatrixType=Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexEigenSolver.h(270): message : see reference to function template instantiation 'Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>> &Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>>::compute<Derived>(const Eigen::EigenBase<Derived> &,bool)' being compiled
28> with
28> [
28> Derived=Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexEigenSolver.h(270): message : see reference to function template instantiation 'Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>> &Eigen::ComplexSchur<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>>::compute<Derived>(const Eigen::EigenBase<Derived> &,bool)' being compiled
28> with
28> [
28> Derived=Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp(289): message : see reference to function template instantiation 'Eigen::ComplexEigenSolver<Eigen::MatrixXcd> &Eigen::ComplexEigenSolver<Eigen::MatrixXcd>::compute<Derived>(const Eigen::EigenBase<Derived> &,bool)' being compiled
28> with
28> [
28> Derived=Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>
28> ]
28>C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp(289): message : see reference to function template instantiation 'Eigen::ComplexEigenSolver<Eigen::MatrixXcd> &Eigen::ComplexEigenSolver<Eigen::MatrixXcd>::compute<Derived>(const Eigen::EigenBase<Derived> &,bool)' being compiled
28> with
28> [
28> Derived=Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>
28> ]
28>homography_solver.cpp
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(421,1): warning C4459: declaration of 'Scalar' hides global declaration (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Users\Administrator\Downloads\opencv-4.5.5\modules\core\include\opencv2/core/types.hpp(691,25): message : see declaration of 'cv::Scalar' (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(419): message : while compiling class template member function 'void Eigen::internal::dense_assignment_loop<Kernel,3,0>::run(Kernel &)'
28> with
28> [
28> Kernel=Kernel
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(785): message : see reference to function template instantiation 'void Eigen::internal::dense_assignment_loop<Kernel,3,0>::run(Kernel &)' being compiled
28> with
28> [
28> Kernel=Kernel
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(785): message : see reference to class template instantiation 'Eigen::internal::dense_assignment_loop<Kernel,3,0>' being compiled (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(954): message : see reference to function template instantiation 'void Eigen::internal::call_dense_assignment_loop<DstXprType,SrcXprType,Functor>(DstXprType &,const SrcXprType &,const Functor &)' being compiled
28> with
28> [
28> DstXprType=ActualDstTypeCleaned,
28> SrcXprType=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Functor=Eigen::internal::swap_assign_op<std::complex<double>>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(949): message : while compiling class template member function 'void Eigen::internal::Assignment<ActualDstTypeCleaned,Src,Func,Eigen::internal::AssignmentKind<Eigen::DenseShape,Eigen::DenseShape>::Kind,void>::run(DstXprType &,const SrcXprType &,const Functor &)'
28> with
28> [
28> Src=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Func=Eigen::internal::swap_assign_op<std::complex<double>>,
28> DstXprType=ActualDstTypeCleaned,
28> SrcXprType=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Functor=Eigen::internal::swap_assign_op<std::complex<double>>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(890): message : see reference to function template instantiation 'void Eigen::internal::Assignment<ActualDstTypeCleaned,Src,Func,Eigen::internal::AssignmentKind<Eigen::DenseShape,Eigen::DenseShape>::Kind,void>::run(DstXprType &,const SrcXprType &,const Functor &)' being compiled
28> with
28> [
28> Src=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Func=Eigen::internal::swap_assign_op<std::complex<double>>,
28> DstXprType=ActualDstTypeCleaned,
28> SrcXprType=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Functor=Eigen::internal::swap_assign_op<std::complex<double>>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(890): message : see reference to class template instantiation 'Eigen::internal::Assignment<ActualDstTypeCleaned,Src,Func,Eigen::internal::AssignmentKind<Eigen::DenseShape,Eigen::DenseShape>::Kind,void>' being compiled
28> with
28> [
28> Src=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Func=Eigen::internal::swap_assign_op<std::complex<double>>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/AssignEvaluator.h(858): message : see reference to function template instantiation 'void Eigen::internal::call_assignment_no_alias<Dst,Src,Func>(Dst &,const Src &,const Func &)' being compiled
28> with
28> [
28> Dst=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Src=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Func=Eigen::internal::swap_assign_op<std::complex<double>>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Core/DenseBase.h(424): message : see reference to function template instantiation 'void Eigen::internal::call_assignment<Derived,Derived,Eigen::internal::swap_assign_op<std::complex<double>>>(Dst &,const Src &,const Func &,void *)' being compiled
28> with
28> [
28> Derived=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Dst=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Src=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>,
28> Func=Eigen::internal::swap_assign_op<std::complex<double>>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexEigenSolver.h(339): message : see reference to function template instantiation 'void Eigen::DenseBase<Derived>::swap<Derived>(const Eigen::DenseBase<Derived> &)' being compiled
28> with
28> [
28> Derived=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexEigenSolver.h(339): message : see reference to function template instantiation 'void Eigen::DenseBase<Derived>::swap<Derived>(const Eigen::DenseBase<Derived> &)' being compiled
28> with
28> [
28> Derived=Eigen::Block<Eigen::Matrix<std::complex<double>,-1,-1,0,-1,-1>,-1,1,true>
28> ] (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexEigenSolver.h(328): message : while compiling class template member function 'void Eigen::ComplexEigenSolver<Eigen::MatrixXcd>::sortEigenvalues(bool)' (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
28>C:\Libs\Eigen\include\eigen3\Eigen\src/Eigenvalues/ComplexEigenSolver.h(277): message : see reference to function template instantiation 'void Eigen::ComplexEigenSolver<Eigen::MatrixXcd>::sortEigenvalues(bool)' being compiled (compiling source file C:\Users\Administrator\Downloads\opencv-4.5.5\modules\calib3d\src\dls.cpp)
I am wondering is it benign or something might silently fail in runtime in future?
System information (version)
- OpenCV => 4.5.5
- Operating System / Platform => Windows 64 Bit
- Compiler => Visual Studio 2019
- Eigen: 3.4.0
Steps to reproduce
Build OpenCV with Eigen support on Windows platform with Visual Studio 2019
Issue submission checklist
- I report the issue, it's not a question
technically it is a question, but even if it is benign it would be nice to fix this warning - I checked the problem with documentation, FAQ, open issues,
forum.opencv.org, Stack Overflow, etc and have not found solution - I updated to latest OpenCV version and the issue is still there
Reactions are currently unavailable