Skip to content

Newest version of visual studio with c++ experimental results in deprecated errors / warnings.

Summary

Latest version of visual studio breaks compilation for eigen with c++ experimental 23

Environment

  • Operating System : Windows
  • Architecture : x64
  • Eigen Version : lastest master commit : 18018ed0
  • Compiler Version : Visual studio 17.3
  • Compile Flags : -O2

Minimal Example / Steps to reproduce

Include Half / BFloat.h

What is the current bug behavior?

2>D:\Projects\WeirdGame\Server\Native\Lib\Eigen\src\Core\arch\Default\Half.h(218,3): warning C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)
2>D:\Projects\WeirdGame\Server\Native\Lib\Eigen\src\Core\arch\Default\Half.h(248,2): message : see reference to class template instantiation 'Eigen::half_impl::numeric_limits_half_impl<<unnamed-symbol>>' being compiled (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)
2>D:\Projects\WeirdGame\Server\Native\Lib\Eigen\src\Core\arch\Default\Half.h(265,1): warning C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)
2>D:\Projects\WeirdGame\Server\Native\Lib\Eigen\src\Core\arch\Default\Half.h(218,74): warning C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)
2>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\include\limits(40,42): message : see declaration of 'std::float_denorm_style' (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)
2>D:\Projects\WeirdGame\Server\Native\Lib\Eigen\src\Core\arch\Default\BFloat16.h(142,3): warning C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)
2>D:\Projects\WeirdGame\Server\Native\Lib\Eigen\src\Core\arch\Default\BFloat16.h(172,2): message : see reference to class template instantiation 'Eigen::bfloat16_impl::numeric_limits_bfloat16_impl<<unnamed-symbol>>' being compiled (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)
2>D:\Projects\WeirdGame\Server\Native\Lib\Eigen\src\Core\arch\Default\BFloat16.h(189,1): warning C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)
2>D:\Projects\WeirdGame\Server\Native\Lib\Eigen\src\Core\arch\Default\BFloat16.h(142,74): warning C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. (compiling source file ..\Native\Src\SpaceBlocks\Blocks\BlockTypes\SimpleTurret.cpp)

What is the expected correct behavior?

To compile fine