Eigen failed to build with error C2059 C2988 C2334 when build with MSVC
Submitted by Microsoft Visual C++ Team
Assigned to Nobody
Link to original bugzilla bug (#1603)
Version: 3.4 (development)
Operating system: Windows
Description
Hi All,
I tried to build Eigen on Windows with VS2017 Update 7. It failed to build due to the error C2059 C2988 C2334.I reproduce the issue at master revision:d29e9d71?at=default.Could you please help take a look at this? Thanks!
Steps to reproduce:
- hg clone https://bitbucket.org/eigen/eigen/ d:\Eigen\src
- Open a VS 2017 x86 command prompt and browse to D:\Eigen
- mkdir build_x86 && pushd build_x86
- cmake -G "Visual Studio 15 2017" -DCMAKE_SYSTEM_VERSION=10.0.17134.0 -DEIGEN_BUILD_BTL=ON ..\src\
- msbuild /m /p:Configuration=Release;Platform=Win32 Eigen3.sln /t:Rebuild
Actual result:
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(121,1): error C2059: syntax error: '<end Parse>' [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(121,1): error C2059: Order==AutoOrder?Flags&RowMajorBit:Order> [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(121,1): error C2059: ^ [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
51>D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2988: unrecognizable template declaration/definition [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2988: { [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2988: ^ [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
51>D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2059: syntax error: '{' [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2059: { [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2059: ^ [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
51>D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2334: unexpected token(s) preceding '{'; skipping apparent function body [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2334: { [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(123,1): error C2334: ^ [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
51>D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2988: unrecognizable template declaration/definition [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2988: return Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived,SizeAtCompileTime,1>(derived(),size(),1); [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2988: ^ [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
51>D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2059: syntax error: 'return' [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2059: return Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived,SizeAtCompileTime,1>(derived(),size(),1); [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2059: ^ [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
51>D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2238: unexpected token(s) preceding ';' [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2238: return Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived,SizeAtCompileTime,1>(derived(),size(),1); [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(139,1): error C2238: ^ [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
51>D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(142,1): error C2988: unrecognizable template declaration/definition [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(142,1): error C2988: template<int Order> [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]
D:\Eigen\src\Eigen\src\plugins\ReshapedMethods.h(142,1): error C2988: ^ [D:\Eigen\build_x86\test\array_reverse_2.vcxproj]