Eigen failed with error C2676: binary '/': 'const T' does not define this operator or a conversion to a type acceptable to the predefined operator on Windows with VS2017

Submitted by Microsoft Visual C++ Team

Assigned to Nobody

Link to original bugzilla bug (#1747)
Operating system: Windows

Description

Hi All,

I tried to build Eigen on Windows with VS2017. It failed to build due to error C2676: binary '/': 'const T' does not define this operator or a conversion to a type acceptable to the predefined operator.It can be reproduced on latest reversion and can be first reproduced on e38dd48a commit.Could you please help take a look at this? Thanks!

Steps to reproduce:

  1. hg clone https://bitbucket.org/eigen/eigen/ d:\Eigen\src

  2. Open a VS 2017 x64 command prompt and browse to D:\Eigen

  3. mkdir build_x64 && pushd build_x64

  4. cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_SYSTEM_VERSION=10.0.17134.0 -DEIGEN_BUILD_BTL=ON ..\src\

  5. msbuild /m /p:Configuration=Release;Platform=x64 Eigen3.sln /t:Rebuild

Actual result:

D:\Eigen\src\unsupported\Eigen\src/SpecialFunctions/SpecialFunctionsImpl.h(615): error C2676: binary '/': 'const T' does not define this operator or a conversion to a type acceptable to the predefined operator [D:\Eigen\build_x86\unsupported\test\special_functions_1.vcxproj]

             with  

             [  

                 T=__m128  

             ]  

     D:\Eigen\src\unsupported\Eigen\src/SpecialFunctions/SpecialFunctionsImpl.h(643): note: see reference to function template instantiation 'T Eigen::internal::generic_ndtri_lt_exp_neg_two<T,ScalarType>(const T &,const T &)' being compiled  

             with  

             [  

                 T=__m128,