'is_same_block': no matching overloaded function found

Summary

Compilation error when making 'check'

Environment

  • Operating System : Windows
  • Architecture : x64
  • Eigen Version : 3.4.0
  • Compiler Version -- The C compiler identification is MSVC 19.0.24215.1 -- The CXX compiler identification is MSVC 19.0.24215.1
  • Compile Flags : CXX: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe CXX_FLAGS: /DWIN32 /D_WINDOWS /W4 /GR /EHsc /EHsc /wd4127 /wd4505 /wd4714 /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS
  • Vector Extension : Using architecture defaults

Steps to reproduce

unzip eigen-3.4.0.zip
cd eigen-3.4.0
mkdir build
cd build
cmake ..

-- Building for: Visual Studio 14 2015 
-- Selecting Windows SDK version  to target Windows 10.0.17763. 
-- The C compiler identification is MSVC 19.0.24215.1 
-- The CXX compiler identification is MSVC 19.0.24215.1 
-- Detecting C compiler ABI info 
-- Detecting C compiler ABI info - done 
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe - skipped 
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info 
-- Detecting CXX compiler ABI info - done 
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe - skipped 
-- Detecting CXX compile features
-- Detecting CXX compile features - done 
-- Performing Test EIGEN_COMPILER_SUPPORT_CPP11 
-- Performing Test EIGEN_COMPILER_SUPPORT_CPP11 - Success 
-- Performing Test COMPILER_SUPPORT_std=cpp03 
-- Performing Test COMPILER_SUPPORT_std=cpp03 - Failed 
-- Performing Test standard_math_library_linked_to_automatically 
-- Performing Test standard_math_library_linked_to_automatically - Success 
-- Standard libraries to link to explicitly: none 
-- Performing Test COMPILER_SUPPORT_OPENMP
-- Performing Test COMPILER_SUPPORT_OPENMP - Success 
-- Found unsuitable Qt version "" from NOTFOUND 
-- Looking for a Fortran compiler 
-- Looking for a Fortran compiler - NOTFOUND 
-- Could NOT find CHOLMOD (missing: CHOLMOD_INCLUDES CHOLMOD_LIBRARIES)  
-- Could NOT find UMFPACK (missing: UMFPACK_INCLUDES UMFPACK_LIBRARIES)  
-- Could NOT find KLU (missing: KLU_INCLUDES KLU_LIBRARIES)  
-- Could NOT find SuperLU (missing: SUPERLU_INCLUDES SUPERLU_LIBRARIES SUPERLU_VERSION_OK) (Required is at least version "4.0") 
-- A version of Pastix has been found but pastix_nompi.h does not exist in the include directory. Because Eigen tests require a version without MPI, we disable the Pastix backend. 
-- Could NOT find SPQR (missing: SPQR_INCLUDES SPQR_LIBRARIES)  
-- Found unsuitable Qt version "" from NOTFOUND 
-- Performing Test COMPILER_SUPPORT_FASTMATH 
-- Performing Test COMPILER_SUPPORT_FASTMATH - Failed 
-- Performing Test COMPILER_SUPPORT_FPFAST 
-- Performing Test COMPILER_SUPPORT_FPFAST - Success 
-- Could NOT find Boost (missing: Boost_INCLUDE_DIR) (Required is at least version "1.53.0") 
-- Found Threads: TRUE   
-- Could NOT find GoogleHash (missing: GOOGLEHASH_INCLUDES GOOGLEHASH_COMPILE)
-- Could NOT find Adolc (missing: ADOLC_INCLUDES ADOLC_LIBRARIES)
-- Could NOT find MPFR (missing: MPFR_INCLUDES MPFR_LIBRARIES MPFR_VERSION_OK) (Required is at least version "1.0.0")
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
CUDA_TOOLKIT_ROOT_DIR not found or specified
-- Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) (Required is at least version "7.0")
-- Found unsuitable Qt version "" from NOTFOUND
-- Qt4 not found, so disabling the mandelbrot and opengl demos
-- ************************************************************
-- ***    Eigen's unit tests configuration summary          ***
-- ************************************************************
--
-- Build type:        Release
-- Build site:        
-- Build string:      
-- Enabled backends:
-- Disabled backends: CHOLMOD,  UMFPACK,  KLU,  SuperLU,  PaStiX,  METIS,  SPQR,  Qt4 support,  Boost.Multiprecision,  GoogleHash,  Adolc,  MPFR C++,  fftw,  OpenGL,
-- Default order:     Column-major
-- Maximal matrix/vector size: 320
-- SSE2:              Using architecture defaults
-- SSE3:              Using architecture defaults
-- SSSE3:             Using architecture defaults
-- SSE4.1:            Using architecture defaults
-- SSE4.2:            Using architecture defaults
-- AVX:               Using architecture defaults
-- AVX2:              Using architecture defaults
-- FMA:               Using architecture defaults
-- AVX512:            Using architecture defaults
-- AVX512DQ:          Using architecture defaults
-- Altivec:           Using architecture defaults
-- VSX:               Using architecture defaults
-- MIPS MSA:          Using architecture defaults
-- ARM NEON:          Using architecture defaults
-- ARMv8 NEON:        Using architecture defaults
-- S390X ZVECTOR:     Using architecture defaults
-- C++11:             OFF
-- SYCL:              OFF
-- CUDA:              OFF
-- HIP:               OFF
--
CXX:               C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe
 CXX_FLAGS:         /DWIN32 /D_WINDOWS /W4 /GR /EHsc /EHsc /wd4127 /wd4505 /wd4714 /D_CRT_SECURE_NO_WARNINGS /D_SCL_SECURE_NO_WARNINGS
 Sparse lib flags:

...
cmake --build . --target check
...
  Building Custom Rule C:/Users/wtambellini/eigen/eigen-3.4.0/test/CMakeLists.txt 
  block.cpp 
C:\Users\wtambellini\eigen\eigen-3.4.0\test\block.cpp(116): error C2672: 'is_same_block': no matching overloaded function found [C:\Users\wtambellini\eigen\eigen-3.4.0\build\test\block_1.vcxproj] 
  C:\Users\wtambellini\eigen\eigen-3.4.0\test\block.cpp(299): note: see reference to function template instantiation 'void block<Eigen::Matrix<float,1,1,0,1,1>>(const MatrixType &)' being compiled 
          with
          [
              MatrixType=Eigen::Matrix<float,1,1,0,1,1>
          ]
C:\Users\wtambellini\eigen\eigen-3.4.0\test\block.cpp(116): error C2893: Failed to specialize function template 'internal::enable_if<Eigen::internal::is_same<T,U>::value,bool>::type is_same_block(const T1 &,const T2 &)' [C:\Users\wtambellini\eigen\eigen-3.4.0\bui 
ld\test\block_1.vcxproj]
  C:\Users\wtambellini\eigen\eigen-3.4.0\test\block.cpp(116): note: With the following template arguments:
  C:\Users\wtambellini\eigen\eigen-3.4.0\test\block.cpp(116): note: 'T1=Eigen::Block<Derived,2,-1,false>'
  C:\Users\wtambellini\eigen\eigen-3.4.0\test\block.cpp(116): note: 'T2=Eigen::Block<Derived,-1,-1,false>'

What is the current bug behavior?

Fatal compilation error

What is the expected correct behavior?

Compilation success

  • Have a plan to fix this issue.
Assignee Loading
Time tracking Loading