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