SCons: Pass `/Zc:__cplusplus` in MSVC builds
This commit is contained in:
parent
88ed6af1e6
commit
4c84cb6ae8
|
@ -791,6 +791,8 @@ else:
|
||||||
# Note that this is still not complete conformance, as certain Windows-related headers
|
# Note that this is still not complete conformance, as certain Windows-related headers
|
||||||
# don't compile under complete conformance.
|
# don't compile under complete conformance.
|
||||||
env.Prepend(CCFLAGS=["/permissive-"])
|
env.Prepend(CCFLAGS=["/permissive-"])
|
||||||
|
# Allow use of `__cplusplus` macro to determine C++ standard universally.
|
||||||
|
env.Prepend(CXXFLAGS=["/Zc:__cplusplus"])
|
||||||
|
|
||||||
# Disable exception handling. Godot doesn't use exceptions anywhere, and this
|
# Disable exception handling. Godot doesn't use exceptions anywhere, and this
|
||||||
# saves around 20% of binary size and very significant build time (GH-80513).
|
# saves around 20% of binary size and very significant build time (GH-80513).
|
||||||
|
|
|
@ -44,6 +44,9 @@
|
||||||
#include "core/error/error_list.h"
|
#include "core/error/error_list.h"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
|
// Ensure that C++ standard is at least C++17. If on MSVC, also ensures that the `Zc:__cplusplus` flag is present.
|
||||||
|
static_assert(__cplusplus >= 201703L);
|
||||||
|
|
||||||
// Turn argument to string constant:
|
// Turn argument to string constant:
|
||||||
// https://gcc.gnu.org/onlinedocs/cpp/Stringizing.html#Stringizing
|
// https://gcc.gnu.org/onlinedocs/cpp/Stringizing.html#Stringizing
|
||||||
#ifndef _STR
|
#ifndef _STR
|
||||||
|
|
Loading…
Reference in New Issue