Cleanup/MSVC: Enable C++ conformance mode on compiler versions that support it.
authorRay Molenkamp <github@lazydodo.com>
Fri, 14 Feb 2020 00:13:07 +0000 (17:13 -0700)
committerRay Molenkamp <github@lazydodo.com>
Fri, 14 Feb 2020 00:13:07 +0000 (17:13 -0700)
commit75a5ea01c19563ae1ba427e9206f2eae637d6070
treec611b4c77aaec2414dd2ca2f42dc539f4e57916a
parent4af74f453d4e41129626f7578c55ac9927f6d02a
Cleanup/MSVC: Enable C++ conformance mode on compiler versions that support it.

MSVC has a conformance mode (/permissive-) where the C++ standard is more strictly
enforced. This mode is available on MSVC 15.5+ [1]

This patch enables this mode on compilers that support it and cleans up the few violations it threw up in the process.

- Mantaflow was using M_PI without requesting them using the _USE_MATH_DEFINES define to opt in to non default behaviour.
- Collada did not include the right header for std::cerr, this seemingly was fixed for other platforms already but put inside a platform guard.
- Ghost had some scoping issues regarding uninitialized variables and goto behaviour

Second landing of this patch, earlier commit was reverted due to some compiler configurations having slipped though testing

[1] https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance

Differential Revision: https://developer.blender.org/D6824

Reviewed By: brecht
build_files/cmake/platform/platform_win32.cmake
extern/mantaflow/CMakeLists.txt
intern/ghost/intern/GHOST_ContextWGL.cpp
intern/mantaflow/CMakeLists.txt
source/blender/collada/MeshImporter.cpp