Compilation issue with MSVC 2013 CTP, attempting to reference a deleted function for Block
Submitted by Christos
Assigned to Nobody
Link to original bugzilla bug (#1000)
Version: 3.2
Operating system: Windows
Description
Compilation fails for the above code.
Of course this compiles fine when not using the CTP. Not sure if its a compiler bug or an Eigen issue.
Eigen::Matrix3d A;
Eigen::Vector3d b;
Eigen::Vector3d x = A.fullPivLu().solve(b);
Error message is :
1>------ Build started: Project: TestCompilation, Configuration: Debug x64 ------
1>Build started 20/04/2015 10:21:06 PM.
1>InitializeBuildStatus:
1> Touching "x64\Debug\TestCompilation.tlog\unsuccessfulbuild".
1>ClCompile:
1> All outputs are up-to-date.
1> main.cpp
1>c:\src\insight\src\3rdparty\eigen\eigen\src/LU/FullPivLU.h(718): error C2280: 'Eigen::Block<Derived,1,1,false> &Eigen::Block<Derived,1,1,false>::operator =(const Eigen::Block<Derived,1,1,false> &)' : attempting to reference a deleted function
1> with
1> [
1> Derived=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> c:\src\insight\src\3rdparty\eigen\eigen\src/Core/Block.h(143) : compiler has generated 'Eigen::Block<Derived,1,1,false>::operator =' here
1> with
1> [
1> Derived=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> c:\src\insight\src\3rdparty\eigen\eigen\src/misc/Solve.h(51) : see reference to function template instantiation 'void Eigen::internal::solve_retval<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Derived>::evalTo<Dest>(Dest &) const' being compiled
1> with
1> [
1> Derived=Eigen::Matrix<double,3,1,0,3,1>
1> , Dest=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> c:\src\insight\src\3rdparty\eigen\eigen\src/misc/Solve.h(51) : see reference to function template instantiation 'void Eigen::internal::solve_retval<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Derived>::evalTo<Dest>(Dest &) const' being compiled
1> with
1> [
1> Derived=Eigen::Matrix<double,3,1,0,3,1>
1> , Dest=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> c:\src\insight\src\3rdparty\eigen\eigen\src/Core/ReturnByValue.h(60) : see reference to function template instantiation 'void Eigen::internal::solve_retval_base<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Rhs>::evalTo<Dest>(Dest &) const' being compiled
1> with
1> [
1> Rhs=Eigen::Matrix<double,3,1,0,3,1>
1> , Dest=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> c:\src\insight\src\3rdparty\eigen\eigen\src/Core/ReturnByValue.h(60) : see reference to function template instantiation 'void Eigen::internal::solve_retval_base<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Rhs>::evalTo<Dest>(Dest &) const' being compiled
1> with
1> [
1> Rhs=Eigen::Matrix<double,3,1,0,3,1>
1> , Dest=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> c:\src\insight\src\3rdparty\eigen\eigen\src/Core/Matrix.h(296) : see reference to function template instantiation 'void Eigen::ReturnByValue<Eigen::internal::solve_retval_base<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Rhs>>::evalTo<Eigen::Matrix<double,3,1,0,3,1>>(Dest &) const' being compiled
1> with
1> [
1> Rhs=Eigen::Matrix<double,3,1,0,3,1>
1> , Dest=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> c:\src\insight\src\3rdparty\eigen\eigen\src/Core/Matrix.h(296) : see reference to function template instantiation 'void Eigen::ReturnByValue<Eigen::internal::solve_retval_base<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Rhs>>::evalTo<Eigen::Matrix<double,3,1,0,3,1>>(Dest &) const' being compiled
1> with
1> [
1> Rhs=Eigen::Matrix<double,3,1,0,3,1>
1> , Dest=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> ......\Users\Christos\Downloads\TestEigenComp\main.cpp(57) : see reference to function template instantiation 'Eigen::Matrix<double,3,1,0,3,1>::Matrix<Eigen::internal::solve_retval_base<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Rhs>>(const Eigen::ReturnByValue<Eigen::internal::solve_retval_base<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Rhs>> &)' being compiled
1> with
1> [
1> Rhs=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1> ......\Users\Christos\Downloads\TestEigenComp\main.cpp(57) : see reference to function template instantiation 'Eigen::Matrix<double,3,1,0,3,1>::Matrix<Eigen::internal::solve_retval_base<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Rhs>>(const Eigen::ReturnByValue<Eigen::internal::solve_retval_base<Eigen::FullPivLU<Eigen::Matrix<double,3,3,0,3,3>>,Rhs>> &)' being compiled
1> with
1> [
1> Rhs=Eigen::Matrix<double,3,1,0,3,1>
1> ]
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:02.40
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========