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
This commit is contained in:
Ray Molenkamp
2020-02-13 17:13:07 -07:00
parent 4af74f453d
commit 75a5ea01c1
5 changed files with 32 additions and 14 deletions

View File

@@ -19,10 +19,7 @@
*/
#include <algorithm>
#if !defined(WIN32)
# include <iostream>
#endif
#include <iostream>
/* COLLADABU_ASSERT, may be able to remove later */
#include "COLLADABUPlatform.h"