diff --git a/README.md b/README.md
index 1688ed5..384b117 100644
--- a/README.md
+++ b/README.md
@@ -191,6 +191,7 @@ toml++ is licensed under the terms of the MIT license - see [LICENSE].
UTF-8 decoding is performed using a state machine based on Bjoern Hoehrmann's '[Flexible and Economical UTF-8 Decoder]'.
### With thanks to:
+- **[@beastle9end](https://github.com/beastle9end)** - Made Windows.h include bypass
- **[@bjadamson](https://github.com/bjadamson)** - Reported some bugs and helped design a new feature
- **[@bobfang1992](https://github.com/bobfang1992)** - Reported a bug and created a [wrapper in python](https://github.com/bobfang1992/pytomlpp)
- **[@GiulioRomualdi](https://github.com/GiulioRomualdi)** - Added cmake+meson support
@@ -208,7 +209,7 @@ UTF-8 decoding is performed using a state machine based on Bjoern Hoehrmann's '[
- **[@traversaro](https://github.com/traversaro)** - Added vcpkg support and reported a bunch of bugs
- **[@ximion](https://github.com/ximion)** - Added support for installation with meson
- **[@whiterabbit963](https://github.com/whiterabbit963)** - Fixed a bug with value_or conversions
-- **[@beastle9end](https://github.com/beastle9end)** - Made Windows.h include bypass
+
# Contact
diff --git a/docs/pages/main_page.dox b/docs/pages/main_page.dox
index 6dfb750..832b1cd 100644
--- a/docs/pages/main_page.dox
+++ b/docs/pages/main_page.dox
@@ -380,7 +380,7 @@
/// \subsection mainpage-example-speed-up-compilation Speeding up compilation
/// Because toml++ is a header-only library of nontrivial size you might find that compilation times noticeably
/// increase after you add it to your project, especially if you add the library's header somewhere that's visible from
-/// a large number of translation units. You can counter this by disabling 'all inline' mode and explicitly controlling
+/// a large number of translation units. You can counter this by disabling header-only mode and explicitly controlling
/// where the library's implementation is compiled.
///
/// Step 1: Set \ref TOML_HEADER_ONLY to [code]0[/code] before including toml++
diff --git a/include/toml++/toml.h b/include/toml++/toml.h
index fd2fa1f..b2e5e78 100644
--- a/include/toml++/toml.h
+++ b/include/toml++/toml.h
@@ -74,6 +74,7 @@ TOML_POP_WARNINGS; // TOML_DISABLE_SPAM_WARNINGS
#undef TOML_CONSTEVAL
#undef TOML_CPP
#undef TOML_DISABLE_ARITHMETIC_WARNINGS
+ #undef TOML_DISABLE_CODE_ANALYSIS_WARNINGS
#undef TOML_DISABLE_INIT_WARNINGS
#undef TOML_DISABLE_SPAM_WARNINGS
#undef TOML_DISABLE_SHADOW_WARNINGS
diff --git a/include/toml++/toml_default_formatter.hpp b/include/toml++/toml_default_formatter.hpp
index 91b4e91..c940311 100644
--- a/include/toml++/toml_default_formatter.hpp
+++ b/include/toml++/toml_default_formatter.hpp
@@ -204,19 +204,19 @@ TOML_NAMESPACE_END;
// implementations of windows wide string nonsense
#if TOML_WINDOWS_COMPAT
-namespace winapi
-{
- extern "C"
- {
- int __stdcall WideCharToMultiByte(unsigned int CodePage, unsigned long dwFlags, const wchar_t* lpWideCharStr, int cchWideChar,
- const char* lpMultiByteStr, int cbMultiByte, const char* lpDefaultChar, int* lpUsedDefaultChar);
- int __stdcall MultiByteToWideChar(unsigned int CodePage, unsigned long dwFlags, const char* lpMultiByteStr, int cbMultiByte,
- const wchar_t* lpWideCharStr, int cchWideChar);
- }
-}
-
TOML_IMPL_NAMESPACE_START
{
+ namespace winapi
+ {
+ extern "C"
+ {
+ int __stdcall WideCharToMultiByte(unsigned int CodePage, unsigned long dwFlags, const wchar_t* lpWideCharStr, int cchWideChar,
+ char* lpMultiByteStr, int cbMultiByte, const char* lpDefaultChar, int* lpUsedDefaultChar);
+ int __stdcall MultiByteToWideChar(unsigned int CodePage, unsigned long dwFlags, const char* lpMultiByteStr, int cbMultiByte,
+ wchar_t* lpWideCharStr, int cchWideChar);
+ }
+ }
+
TOML_API
TOML_EXTERNAL_LINKAGE
std::string narrow(std::wstring_view str) noexcept
@@ -231,7 +231,7 @@ TOML_IMPL_NAMESPACE_START
if (len)
{
s.resize(static_cast(len));
- winapi::WideCharToMultiByte(65001, 0, str.data(), static_cast(str.length()), s.data(), len, nullptr, nullptr);
+ winapi::WideCharToMultiByte(65001, 0, str.data(), static_cast(str.length()), s.data(), len, nullptr, nullptr);
}
return s;
}
@@ -248,7 +248,7 @@ TOML_IMPL_NAMESPACE_START
if (len)
{
s.resize(static_cast(len));
- winapi::MultiByteToWideChar(65001, 0, str.data(), static_cast(str.length()), s.data(), len);
+ winapi::MultiByteToWideChar(65001, 0, str.data(), static_cast(str.length()), s.data(), len);
}
return s;
}
diff --git a/include/toml++/toml_preprocessor.h b/include/toml++/toml_preprocessor.h
index fd9c192..b38537b 100644
--- a/include/toml++/toml_preprocessor.h
+++ b/include/toml++/toml_preprocessor.h
@@ -46,41 +46,55 @@
#define TOML_GCC 0
#endif
+#ifdef __has_include
+ #define TOML_HAS_INCLUDE(header) __has_include(header)
+#else
+ #define TOML_HAS_INCLUDE(header) 0
+#endif
+
//#====================================================================================================================
//# CLANG
//#====================================================================================================================
#if TOML_CLANG
- #define TOML_PUSH_WARNINGS _Pragma("clang diagnostic push") \
- static_assert(true)
+ #define TOML_PUSH_WARNINGS \
+ _Pragma("clang diagnostic push") \
+ static_assert(true)
- #define TOML_DISABLE_SWITCH_WARNINGS _Pragma("clang diagnostic ignored \"-Wswitch\"") \
- static_assert(true)
+ #define TOML_DISABLE_SWITCH_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wswitch\"") \
+ static_assert(true)
- #define TOML_DISABLE_INIT_WARNINGS _Pragma("clang diagnostic ignored \"-Wmissing-field-initializers\"") \
- static_assert(true)
+ #define TOML_DISABLE_INIT_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wmissing-field-initializers\"") \
+ static_assert(true)
- #define TOML_DISABLE_ARITHMETIC_WARNINGS _Pragma("clang diagnostic ignored \"-Wfloat-equal\"") \
- _Pragma("clang diagnostic ignored \"-Wdouble-promotion\"") \
- _Pragma("clang diagnostic ignored \"-Wchar-subscripts\"") \
- _Pragma("clang diagnostic ignored \"-Wshift-sign-overflow\"") \
- static_assert(true)
+ #define TOML_DISABLE_ARITHMETIC_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wfloat-equal\"") \
+ _Pragma("clang diagnostic ignored \"-Wdouble-promotion\"") \
+ _Pragma("clang diagnostic ignored \"-Wchar-subscripts\"") \
+ _Pragma("clang diagnostic ignored \"-Wshift-sign-overflow\"") \
+ static_assert(true)
- #define TOML_DISABLE_SHADOW_WARNINGS _Pragma("clang diagnostic ignored \"-Wshadow\"") \
- static_assert(true)
+ #define TOML_DISABLE_SHADOW_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wshadow\"") \
+ static_assert(true)
- #define TOML_DISABLE_SPAM_WARNINGS _Pragma("clang diagnostic ignored \"-Wweak-vtables\"") \
- _Pragma("clang diagnostic ignored \"-Wweak-template-vtables\"") \
- _Pragma("clang diagnostic ignored \"-Wpadded\"") \
- static_assert(true)
+ #define TOML_DISABLE_SPAM_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wweak-vtables\"") \
+ _Pragma("clang diagnostic ignored \"-Wweak-template-vtables\"") \
+ _Pragma("clang diagnostic ignored \"-Wpadded\"") \
+ static_assert(true)
- #define TOML_POP_WARNINGS _Pragma("clang diagnostic pop") \
- static_assert(true)
+ #define TOML_POP_WARNINGS \
+ _Pragma("clang diagnostic pop") \
+ static_assert(true)
- #define TOML_DISABLE_WARNINGS TOML_PUSH_WARNINGS; \
- _Pragma("clang diagnostic ignored \"-Weverything\"") \
- static_assert(true)
+ #define TOML_DISABLE_WARNINGS \
+ TOML_PUSH_WARNINGS; \
+ _Pragma("clang diagnostic ignored \"-Weverything\"") \
+ static_assert(true)
#define TOML_ENABLE_WARNINGS TOML_POP_WARNINGS
@@ -130,41 +144,75 @@
#define TOML_CPP_VERSION _MSVC_LANG
#if TOML_MSVC // !intel-cl
- #define TOML_PUSH_WARNINGS __pragma(warning(push)) \
- static_assert(true)
+ #define TOML_PUSH_WARNINGS \
+ __pragma(warning(push)) \
+ static_assert(true)
- #define TOML_DISABLE_SWITCH_WARNINGS __pragma(warning(disable: 4061)) \
- __pragma(warning(disable: 4063)) \
- __pragma(warning(disable: 26819)) \
- static_assert(true)
+ #if TOML_HAS_INCLUDE()
+ #pragma warning(push, 0)
+ #include
+ #pragma warning(pop)
+ #define TOML_DISABLE_CODE_ANALYSIS_WARNINGS \
+ __pragma(warning(disable: ALL_CODE_ANALYSIS_WARNINGS)) \
+ static_assert(true)
+ #else
+ #define TOML_DISABLE_CODE_ANALYSIS_WARNINGS
+ static_assert(true)
+ #endif
- #define TOML_DISABLE_SPAM_WARNINGS __pragma(warning(disable: 4127)) /* conditional expr is constant */ \
- __pragma(warning(disable: 4324)) /* structure was padded due to alignment specifier */ \
- __pragma(warning(disable: 4348)) \
- __pragma(warning(disable: 4505)) /* unreferenced local function removed */ \
- __pragma(warning(disable: 4514)) /* unreferenced inline function has been removed */ \
- __pragma(warning(disable: 4623)) /* default constructor was implicitly defined as deleted */ \
- __pragma(warning(disable: 4625)) /* copy constructor was implicitly defined as deleted */ \
- __pragma(warning(disable: 4626)) /* assignment operator was implicitly defined as deleted */ \
- __pragma(warning(disable: 4710)) /* function not inlined */ \
- __pragma(warning(disable: 4711)) /* function selected for automatic expansion */ \
- __pragma(warning(disable: 4820)) /* N bytes padding added */ \
- __pragma(warning(disable: 4946)) /* reinterpret_cast used between related classes */ \
- __pragma(warning(disable: 5026)) /* move constructor was implicitly defined as deleted */ \
- __pragma(warning(disable: 5027)) /* move assignment operator was implicitly defined as deleted */ \
- __pragma(warning(disable: 5045)) /* Compiler will insert Spectre mitigation */ \
- __pragma(warning(disable: 26451)) \
- __pragma(warning(disable: 26490)) \
- __pragma(warning(disable: 26495)) \
- __pragma(warning(disable: 26812)) \
- __pragma(warning(disable: 26819)) \
- static_assert(true)
+ #define TOML_DISABLE_SWITCH_WARNINGS \
+ __pragma(warning(disable: 4061)) \
+ __pragma(warning(disable: 4062)) \
+ __pragma(warning(disable: 4063)) \
+ __pragma(warning(disable: 26819)) \
+ static_assert(true)
- #define TOML_POP_WARNINGS __pragma(warning(pop)) \
- static_assert(true)
+ #define TOML_DISABLE_SPAM_WARNINGS \
+ __pragma(warning(disable: 4127)) /* conditional expr is constant */ \
+ __pragma(warning(disable: 4324)) /* structure was padded due to alignment specifier */ \
+ __pragma(warning(disable: 4348)) \
+ __pragma(warning(disable: 4464)) /* relative include path contains '..' */ \
+ __pragma(warning(disable: 4505)) /* unreferenced local function removed */ \
+ __pragma(warning(disable: 4514)) /* unreferenced inline function has been removed */ \
+ __pragma(warning(disable: 4582)) /* constructor is not implicitly called */ \
+ __pragma(warning(disable: 4623)) /* default constructor was implicitly defined as deleted */ \
+ __pragma(warning(disable: 4625)) /* copy constructor was implicitly defined as deleted */ \
+ __pragma(warning(disable: 4626)) /* assignment operator was implicitly defined as deleted */ \
+ __pragma(warning(disable: 4710)) /* function not inlined */ \
+ __pragma(warning(disable: 4711)) /* function selected for automatic expansion */ \
+ __pragma(warning(disable: 4820)) /* N bytes padding added */ \
+ __pragma(warning(disable: 4946)) /* reinterpret_cast used between related classes */ \
+ __pragma(warning(disable: 5026)) /* move constructor was implicitly defined as deleted */ \
+ __pragma(warning(disable: 5027)) /* move assignment operator was implicitly defined as deleted */ \
+ __pragma(warning(disable: 5039)) /* potentially throwing function passed to 'extern "C"' function */ \
+ __pragma(warning(disable: 5045)) /* Compiler will insert Spectre mitigation */ \
+ __pragma(warning(disable: 26451)) \
+ __pragma(warning(disable: 26490)) \
+ __pragma(warning(disable: 26495)) \
+ __pragma(warning(disable: 26812)) \
+ __pragma(warning(disable: 26819)) \
+ static_assert(true)
- #define TOML_DISABLE_WARNINGS __pragma(warning(push, 0)) \
- static_assert(true)
+ #define TOML_DISABLE_ARITHMETIC_WARNINGS \
+ __pragma(warning(disable: 4365)) /* argument signed/unsigned mismatch */ \
+ __pragma(warning(disable: 4738)) /* storing 32-bit float result in memory */ \
+ __pragma(warning(disable: 5219)) /* implicit conversion from integral to float */ \
+ static_assert(true)
+
+ #define TOML_POP_WARNINGS \
+ __pragma(warning(pop)) \
+ static_assert(true)
+
+ #define TOML_DISABLE_WARNINGS \
+ __pragma(warning(push, 0)) \
+ __pragma(warning(disable: 4348)) \
+ __pragma(warning(disable: 4668)) \
+ __pragma(warning(disable: 5105)) \
+ TOML_DISABLE_CODE_ANALYSIS_WARNINGS;\
+ TOML_DISABLE_SWITCH_WARNINGS; \
+ TOML_DISABLE_SPAM_WARNINGS; \
+ TOML_DISABLE_ARITHMETIC_WARNINGS; \
+ static_assert(true)
#define TOML_ENABLE_WARNINGS TOML_POP_WARNINGS
@@ -191,24 +239,28 @@
#if TOML_ICC
- #define TOML_PUSH_WARNINGS __pragma(warning(push)) \
- static_assert(true)
+ #define TOML_PUSH_WARNINGS \
+ __pragma(warning(push)) \
+ static_assert(true)
- #define TOML_DISABLE_SPAM_WARNINGS __pragma(warning(disable: 82)) /* storage class is not first */ \
- __pragma(warning(disable: 111)) /* statement unreachable (false-positive) */ \
- __pragma(warning(disable: 869)) /* unreferenced parameter */ \
- __pragma(warning(disable: 1011)) /* missing return (false-positive) */ \
- __pragma(warning(disable: 2261)) /* assume expr side-effects discarded */ \
- static_assert(true)
+ #define TOML_DISABLE_SPAM_WARNINGS \
+ __pragma(warning(disable: 82)) /* storage class is not first */ \
+ __pragma(warning(disable: 111)) /* statement unreachable (false-positive) */ \
+ __pragma(warning(disable: 869)) /* unreferenced parameter */ \
+ __pragma(warning(disable: 1011)) /* missing return (false-positive) */ \
+ __pragma(warning(disable: 2261)) /* assume expr side-effects discarded */ \
+ static_assert(true)
- #define TOML_POP_WARNINGS __pragma(warning(pop)) \
- static_assert(true)
+ #define TOML_POP_WARNINGS \
+ __pragma(warning(pop)) \
+ static_assert(true)
- #define TOML_DISABLE_WARNINGS __pragma(warning(push, 0)) \
- static_assert(true)
+ #define TOML_DISABLE_WARNINGS \
+ __pragma(warning(push, 0)) \
+ static_assert(true)
- #define TOML_ENABLE_WARNINGS TOML_POP_WARNINGS \
- static_assert(true)
+ #define TOML_ENABLE_WARNINGS \
+ TOML_POP_WARNINGS
#endif // icc
@@ -218,52 +270,61 @@
#if TOML_GCC
- #define TOML_PUSH_WARNINGS _Pragma("GCC diagnostic push") \
- static_assert(true)
+ #define TOML_PUSH_WARNINGS \
+ _Pragma("GCC diagnostic push") \
+ static_assert(true)
- #define TOML_DISABLE_SWITCH_WARNINGS _Pragma("GCC diagnostic ignored \"-Wswitch\"") \
- _Pragma("GCC diagnostic ignored \"-Wswitch-enum\"") \
- _Pragma("GCC diagnostic ignored \"-Wswitch-default\"") \
- static_assert(true)
+ #define TOML_DISABLE_SWITCH_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wswitch\"") \
+ _Pragma("GCC diagnostic ignored \"-Wswitch-enum\"") \
+ _Pragma("GCC diagnostic ignored \"-Wswitch-default\"") \
+ static_assert(true)
- #define TOML_DISABLE_INIT_WARNINGS _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
- _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
- _Pragma("GCC diagnostic ignored \"-Wuninitialized\"") \
- static_assert(true)
+ #define TOML_DISABLE_INIT_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
+ _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
+ _Pragma("GCC diagnostic ignored \"-Wuninitialized\"") \
+ static_assert(true)
- #define TOML_DISABLE_ARITHMETIC_WARNINGS _Pragma("GCC diagnostic ignored \"-Wfloat-equal\"") \
- _Pragma("GCC diagnostic ignored \"-Wsign-conversion\"") \
- _Pragma("GCC diagnostic ignored \"-Wchar-subscripts\"") \
- static_assert(true)
+ #define TOML_DISABLE_ARITHMETIC_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wfloat-equal\"") \
+ _Pragma("GCC diagnostic ignored \"-Wsign-conversion\"") \
+ _Pragma("GCC diagnostic ignored \"-Wchar-subscripts\"") \
+ static_assert(true)
- #define TOML_DISABLE_SHADOW_WARNINGS _Pragma("GCC diagnostic ignored \"-Wshadow\"") \
- static_assert(true)
+ #define TOML_DISABLE_SHADOW_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wshadow\"") \
+ static_assert(true)
- #define TOML_DISABLE_SPAM_WARNINGS _Pragma("GCC diagnostic ignored \"-Wpadded\"") \
- _Pragma("GCC diagnostic ignored \"-Wcast-align\"") \
- _Pragma("GCC diagnostic ignored \"-Wcomment\"") \
- _Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
- _Pragma("GCC diagnostic ignored \"-Wuseless-cast\"") \
- _Pragma("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") \
- _Pragma("GCC diagnostic ignored \"-Wsuggest-attribute=pure\"") \
- static_assert(true)
+ #define TOML_DISABLE_SPAM_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wpadded\"") \
+ _Pragma("GCC diagnostic ignored \"-Wcast-align\"") \
+ _Pragma("GCC diagnostic ignored \"-Wcomment\"") \
+ _Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
+ _Pragma("GCC diagnostic ignored \"-Wuseless-cast\"") \
+ _Pragma("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") \
+ _Pragma("GCC diagnostic ignored \"-Wsuggest-attribute=pure\"") \
+ static_assert(true)
- #define TOML_POP_WARNINGS _Pragma("GCC diagnostic pop") \
- static_assert(true)
+ #define TOML_POP_WARNINGS \
+ _Pragma("GCC diagnostic pop") \
+ static_assert(true)
- #define TOML_DISABLE_WARNINGS TOML_PUSH_WARNINGS; \
- _Pragma("GCC diagnostic ignored \"-Wall\"") \
- _Pragma("GCC diagnostic ignored \"-Wextra\"") \
- _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
- TOML_DISABLE_SWITCH_WARNINGS; \
- TOML_DISABLE_INIT_WARNINGS; \
- TOML_DISABLE_ARITHMETIC_WARNINGS; \
- TOML_DISABLE_SHADOW_WARNINGS; \
- TOML_DISABLE_SPAM_WARNINGS; \
- static_assert(true)
+ #define TOML_DISABLE_WARNINGS \
+ TOML_PUSH_WARNINGS; \
+ _Pragma("GCC diagnostic ignored \"-Wall\"") \
+ _Pragma("GCC diagnostic ignored \"-Wextra\"") \
+ _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
+ TOML_DISABLE_SWITCH_WARNINGS; \
+ TOML_DISABLE_INIT_WARNINGS; \
+ TOML_DISABLE_ARITHMETIC_WARNINGS; \
+ TOML_DISABLE_SHADOW_WARNINGS; \
+ TOML_DISABLE_SPAM_WARNINGS; \
+ static_assert(true)
- #define TOML_ENABLE_WARNINGS TOML_POP_WARNINGS
+ #define TOML_ENABLE_WARNINGS \
+ TOML_POP_WARNINGS
#define TOML_ATTR(...) __attribute__((__VA_ARGS__))
#ifndef TOML_ALWAYS_INLINE
@@ -371,12 +432,6 @@ is no longer necessary.
#endif
#undef TOML_CPP_VERSION
-#ifdef __has_include
- #define TOML_HAS_INCLUDE(header) __has_include(header)
-#else
- #define TOML_HAS_INCLUDE(header) 0
-#endif
-
#ifndef TOML_COMPILER_EXCEPTIONS
#if defined(__EXCEPTIONS) || defined(__cpp_exceptions)
#define TOML_COMPILER_EXCEPTIONS 1
@@ -429,6 +484,9 @@ is no longer necessary.
#ifndef TOML_PUSH_WARNINGS
#define TOML_PUSH_WARNINGS static_assert(true)
#endif
+#ifndef TOML_DISABLE_CODE_ANALYSIS_WARNINGS
+ #define TOML_DISABLE_CODE_ANALYSIS_WARNINGS static_assert(true)
+#endif
#ifndef TOML_DISABLE_SWITCH_WARNINGS
#define TOML_DISABLE_SWITCH_WARNINGS static_assert(true)
#endif
@@ -742,8 +800,8 @@ TOML_ENABLE_WARNINGS;
/// \def TOML_IMPLEMENTATION
-/// \brief Enables the library's implementation when #TOML_HEADER_ONLY is enabled.
-/// \detail Not defined by default. Meaningless when #TOML_HEADER_ONLY is disabled.
+/// \brief Enables the library's implementation when #TOML_HEADER_ONLY is disabled.
+/// \detail Not defined by default. Meaningless when #TOML_HEADER_ONLY is enabled.
/// \def TOML_LARGE_FILES
diff --git a/tests/catch2.h b/tests/catch2.h
index 1421134..7ff723d 100644
--- a/tests/catch2.h
+++ b/tests/catch2.h
@@ -7,14 +7,19 @@
#include "settings.h"
#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Weverything"
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Weverything"
#elif defined (__GNUC__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wall"
-#pragma GCC diagnostic ignored "-Wextra"
-#pragma GCC diagnostic ignored "-Wpadded"
-#pragma GCC diagnostic ignored "-Wfloat-equal"
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wall"
+ #pragma GCC diagnostic ignored "-Wextra"
+ #pragma GCC diagnostic ignored "-Wpadded"
+ #pragma GCC diagnostic ignored "-Wfloat-equal"
+#elif defined(_MSC_VER)
+ #pragma warning(push, 0)
+ #pragma warning(disable : 4365)
+ #pragma warning(disable : 4868)
+ #pragma warning(disable : 5105)
#endif
#if __has_include()
@@ -24,8 +29,10 @@
#endif
#ifdef __clang__
-#pragma clang diagnostic pop
-#elif defined (__GNUC__)
-#pragma GCC diagnostic pop
+ #pragma clang diagnostic pop
+#elif defined(__GNUC__)
+ #pragma GCC diagnostic pop
+#elif defined(_MSC_VER)
+ #pragma warning(pop)
#endif
diff --git a/tests/parsing_dates_and_times.cpp b/tests/parsing_dates_and_times.cpp
index 4d4eacb..4130f86 100644
--- a/tests/parsing_dates_and_times.cpp
+++ b/tests/parsing_dates_and_times.cpp
@@ -5,7 +5,6 @@
#include "tests.h"
-TOML_PUSH_WARNINGS;
TOML_DISABLE_INIT_WARNINGS;
TEST_CASE("parsing - dates and times")
diff --git a/tests/tests.h b/tests/tests.h
index 8581d6b..9bd870c 100644
--- a/tests/tests.h
+++ b/tests/tests.h
@@ -46,6 +46,7 @@
#define UNICODE_LITERALS_OK 1
#endif
+TOML_DISABLE_SPAM_WARNINGS;
TOML_DISABLE_ARITHMETIC_WARNINGS;
TOML_DISABLE_WARNINGS;
diff --git a/tests/vs/test_debug_x64.vcxproj b/tests/vs/test_debug_x64.vcxproj
index 8a791c2..e2626a5 100644
--- a/tests/vs/test_debug_x64.vcxproj
+++ b/tests/vs/test_debug_x64.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x64_cpplatest.vcxproj b/tests/vs/test_debug_x64_cpplatest.vcxproj
index 326170d..2cebfe4 100644
--- a/tests/vs/test_debug_x64_cpplatest.vcxproj
+++ b/tests/vs/test_debug_x64_cpplatest.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x64_cpplatest_noexcept.vcxproj b/tests/vs/test_debug_x64_cpplatest_noexcept.vcxproj
index e399060..a587fc9 100644
--- a/tests/vs/test_debug_x64_cpplatest_noexcept.vcxproj
+++ b/tests/vs/test_debug_x64_cpplatest_noexcept.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x64_cpplatest_noexcept_unrel.vcxproj b/tests/vs/test_debug_x64_cpplatest_noexcept_unrel.vcxproj
index 7258961..29ffa88 100644
--- a/tests/vs/test_debug_x64_cpplatest_noexcept_unrel.vcxproj
+++ b/tests/vs/test_debug_x64_cpplatest_noexcept_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x64_cpplatest_unrel.vcxproj b/tests/vs/test_debug_x64_cpplatest_unrel.vcxproj
index 2501a31..5903882 100644
--- a/tests/vs/test_debug_x64_cpplatest_unrel.vcxproj
+++ b/tests/vs/test_debug_x64_cpplatest_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x64_noexcept.vcxproj b/tests/vs/test_debug_x64_noexcept.vcxproj
index e8b5466..93a030e 100644
--- a/tests/vs/test_debug_x64_noexcept.vcxproj
+++ b/tests/vs/test_debug_x64_noexcept.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x64_noexcept_unrel.vcxproj b/tests/vs/test_debug_x64_noexcept_unrel.vcxproj
index 181b6da..c252bcf 100644
--- a/tests/vs/test_debug_x64_noexcept_unrel.vcxproj
+++ b/tests/vs/test_debug_x64_noexcept_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x64_unrel.vcxproj b/tests/vs/test_debug_x64_unrel.vcxproj
index dc32c62..1d75548 100644
--- a/tests/vs/test_debug_x64_unrel.vcxproj
+++ b/tests/vs/test_debug_x64_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x86.vcxproj b/tests/vs/test_debug_x86.vcxproj
index 7db16c7..8db2fba 100644
--- a/tests/vs/test_debug_x86.vcxproj
+++ b/tests/vs/test_debug_x86.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x86_cpplatest.vcxproj b/tests/vs/test_debug_x86_cpplatest.vcxproj
index b25dbb9..1f33445 100644
--- a/tests/vs/test_debug_x86_cpplatest.vcxproj
+++ b/tests/vs/test_debug_x86_cpplatest.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x86_cpplatest_noexcept.vcxproj b/tests/vs/test_debug_x86_cpplatest_noexcept.vcxproj
index 16e859a..394d937 100644
--- a/tests/vs/test_debug_x86_cpplatest_noexcept.vcxproj
+++ b/tests/vs/test_debug_x86_cpplatest_noexcept.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x86_cpplatest_noexcept_unrel.vcxproj b/tests/vs/test_debug_x86_cpplatest_noexcept_unrel.vcxproj
index 5e93b56..9affd82 100644
--- a/tests/vs/test_debug_x86_cpplatest_noexcept_unrel.vcxproj
+++ b/tests/vs/test_debug_x86_cpplatest_noexcept_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x86_cpplatest_unrel.vcxproj b/tests/vs/test_debug_x86_cpplatest_unrel.vcxproj
index 2f78858..8a9e57b 100644
--- a/tests/vs/test_debug_x86_cpplatest_unrel.vcxproj
+++ b/tests/vs/test_debug_x86_cpplatest_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x86_noexcept.vcxproj b/tests/vs/test_debug_x86_noexcept.vcxproj
index ebe202c..ec396aa 100644
--- a/tests/vs/test_debug_x86_noexcept.vcxproj
+++ b/tests/vs/test_debug_x86_noexcept.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x86_noexcept_unrel.vcxproj b/tests/vs/test_debug_x86_noexcept_unrel.vcxproj
index a32662d..caed681 100644
--- a/tests/vs/test_debug_x86_noexcept_unrel.vcxproj
+++ b/tests/vs/test_debug_x86_noexcept_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_debug_x86_unrel.vcxproj b/tests/vs/test_debug_x86_unrel.vcxproj
index 2bbd885..e12b440 100644
--- a/tests/vs/test_debug_x86_unrel.vcxproj
+++ b/tests/vs/test_debug_x86_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x64.vcxproj b/tests/vs/test_release_x64.vcxproj
index 0adcc63..ad53b13 100644
--- a/tests/vs/test_release_x64.vcxproj
+++ b/tests/vs/test_release_x64.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x64_cpplatest.vcxproj b/tests/vs/test_release_x64_cpplatest.vcxproj
index 20e5606..6cc46a4 100644
--- a/tests/vs/test_release_x64_cpplatest.vcxproj
+++ b/tests/vs/test_release_x64_cpplatest.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x64_cpplatest_noexcept.vcxproj b/tests/vs/test_release_x64_cpplatest_noexcept.vcxproj
index 4337867..bb009f2 100644
--- a/tests/vs/test_release_x64_cpplatest_noexcept.vcxproj
+++ b/tests/vs/test_release_x64_cpplatest_noexcept.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x64_cpplatest_noexcept_unrel.vcxproj b/tests/vs/test_release_x64_cpplatest_noexcept_unrel.vcxproj
index d4e94a9..d547256 100644
--- a/tests/vs/test_release_x64_cpplatest_noexcept_unrel.vcxproj
+++ b/tests/vs/test_release_x64_cpplatest_noexcept_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x64_cpplatest_unrel.vcxproj b/tests/vs/test_release_x64_cpplatest_unrel.vcxproj
index b4ac913..734acdf 100644
--- a/tests/vs/test_release_x64_cpplatest_unrel.vcxproj
+++ b/tests/vs/test_release_x64_cpplatest_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x64_noexcept.vcxproj b/tests/vs/test_release_x64_noexcept.vcxproj
index 0a9fc68..8679841 100644
--- a/tests/vs/test_release_x64_noexcept.vcxproj
+++ b/tests/vs/test_release_x64_noexcept.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x64_noexcept_unrel.vcxproj b/tests/vs/test_release_x64_noexcept_unrel.vcxproj
index 980b28b..ce3239a 100644
--- a/tests/vs/test_release_x64_noexcept_unrel.vcxproj
+++ b/tests/vs/test_release_x64_noexcept_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x64_unrel.vcxproj b/tests/vs/test_release_x64_unrel.vcxproj
index 33aa2a3..cc8a8a8 100644
--- a/tests/vs/test_release_x64_unrel.vcxproj
+++ b/tests/vs/test_release_x64_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x86.vcxproj b/tests/vs/test_release_x86.vcxproj
index 219ee46..ead38b3 100644
--- a/tests/vs/test_release_x86.vcxproj
+++ b/tests/vs/test_release_x86.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x86_cpplatest.vcxproj b/tests/vs/test_release_x86_cpplatest.vcxproj
index 751b520..c7d4977 100644
--- a/tests/vs/test_release_x86_cpplatest.vcxproj
+++ b/tests/vs/test_release_x86_cpplatest.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x86_cpplatest_noexcept.vcxproj b/tests/vs/test_release_x86_cpplatest_noexcept.vcxproj
index 620122e..e126afa 100644
--- a/tests/vs/test_release_x86_cpplatest_noexcept.vcxproj
+++ b/tests/vs/test_release_x86_cpplatest_noexcept.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x86_cpplatest_noexcept_unrel.vcxproj b/tests/vs/test_release_x86_cpplatest_noexcept_unrel.vcxproj
index c0236b9..12b925e 100644
--- a/tests/vs/test_release_x86_cpplatest_noexcept_unrel.vcxproj
+++ b/tests/vs/test_release_x86_cpplatest_noexcept_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x86_cpplatest_unrel.vcxproj b/tests/vs/test_release_x86_cpplatest_unrel.vcxproj
index 090c5e8..a6fd28b 100644
--- a/tests/vs/test_release_x86_cpplatest_unrel.vcxproj
+++ b/tests/vs/test_release_x86_cpplatest_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpplatest
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x86_noexcept.vcxproj b/tests/vs/test_release_x86_noexcept.vcxproj
index 57c2ee9..ccf22ce 100644
--- a/tests/vs/test_release_x86_noexcept.vcxproj
+++ b/tests/vs/test_release_x86_noexcept.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x86_noexcept_unrel.vcxproj b/tests/vs/test_release_x86_noexcept_unrel.vcxproj
index 2540879..d860d33 100644
--- a/tests/vs/test_release_x86_noexcept_unrel.vcxproj
+++ b/tests/vs/test_release_x86_noexcept_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/tests/vs/test_release_x86_unrel.vcxproj b/tests/vs/test_release_x86_unrel.vcxproj
index 042eb16..59c7fc1 100644
--- a/tests/vs/test_release_x86_unrel.vcxproj
+++ b/tests/vs/test_release_x86_unrel.vcxproj
@@ -44,6 +44,28 @@
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
stdcpp17
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045
diff --git a/toml.hpp b/toml.hpp
index e042719..ffa4d81 100644
--- a/toml.hpp
+++ b/toml.hpp
@@ -82,37 +82,51 @@
#define TOML_GCC 0
#endif
+#ifdef __has_include
+ #define TOML_HAS_INCLUDE(header) __has_include(header)
+#else
+ #define TOML_HAS_INCLUDE(header) 0
+#endif
+
#if TOML_CLANG
- #define TOML_PUSH_WARNINGS _Pragma("clang diagnostic push") \
- static_assert(true)
+ #define TOML_PUSH_WARNINGS \
+ _Pragma("clang diagnostic push") \
+ static_assert(true)
- #define TOML_DISABLE_SWITCH_WARNINGS _Pragma("clang diagnostic ignored \"-Wswitch\"") \
- static_assert(true)
+ #define TOML_DISABLE_SWITCH_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wswitch\"") \
+ static_assert(true)
- #define TOML_DISABLE_INIT_WARNINGS _Pragma("clang diagnostic ignored \"-Wmissing-field-initializers\"") \
- static_assert(true)
+ #define TOML_DISABLE_INIT_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wmissing-field-initializers\"") \
+ static_assert(true)
- #define TOML_DISABLE_ARITHMETIC_WARNINGS _Pragma("clang diagnostic ignored \"-Wfloat-equal\"") \
- _Pragma("clang diagnostic ignored \"-Wdouble-promotion\"") \
- _Pragma("clang diagnostic ignored \"-Wchar-subscripts\"") \
- _Pragma("clang diagnostic ignored \"-Wshift-sign-overflow\"") \
- static_assert(true)
+ #define TOML_DISABLE_ARITHMETIC_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wfloat-equal\"") \
+ _Pragma("clang diagnostic ignored \"-Wdouble-promotion\"") \
+ _Pragma("clang diagnostic ignored \"-Wchar-subscripts\"") \
+ _Pragma("clang diagnostic ignored \"-Wshift-sign-overflow\"") \
+ static_assert(true)
- #define TOML_DISABLE_SHADOW_WARNINGS _Pragma("clang diagnostic ignored \"-Wshadow\"") \
- static_assert(true)
+ #define TOML_DISABLE_SHADOW_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wshadow\"") \
+ static_assert(true)
- #define TOML_DISABLE_SPAM_WARNINGS _Pragma("clang diagnostic ignored \"-Wweak-vtables\"") \
- _Pragma("clang diagnostic ignored \"-Wweak-template-vtables\"") \
- _Pragma("clang diagnostic ignored \"-Wpadded\"") \
- static_assert(true)
+ #define TOML_DISABLE_SPAM_WARNINGS \
+ _Pragma("clang diagnostic ignored \"-Wweak-vtables\"") \
+ _Pragma("clang diagnostic ignored \"-Wweak-template-vtables\"") \
+ _Pragma("clang diagnostic ignored \"-Wpadded\"") \
+ static_assert(true)
- #define TOML_POP_WARNINGS _Pragma("clang diagnostic pop") \
- static_assert(true)
+ #define TOML_POP_WARNINGS \
+ _Pragma("clang diagnostic pop") \
+ static_assert(true)
- #define TOML_DISABLE_WARNINGS TOML_PUSH_WARNINGS; \
- _Pragma("clang diagnostic ignored \"-Weverything\"") \
- static_assert(true)
+ #define TOML_DISABLE_WARNINGS \
+ TOML_PUSH_WARNINGS; \
+ _Pragma("clang diagnostic ignored \"-Weverything\"") \
+ static_assert(true)
#define TOML_ENABLE_WARNINGS TOML_POP_WARNINGS
@@ -158,41 +172,75 @@
#define TOML_CPP_VERSION _MSVC_LANG
#if TOML_MSVC // !intel-cl
- #define TOML_PUSH_WARNINGS __pragma(warning(push)) \
- static_assert(true)
+ #define TOML_PUSH_WARNINGS \
+ __pragma(warning(push)) \
+ static_assert(true)
- #define TOML_DISABLE_SWITCH_WARNINGS __pragma(warning(disable: 4061)) \
- __pragma(warning(disable: 4063)) \
- __pragma(warning(disable: 26819)) \
- static_assert(true)
+ #if TOML_HAS_INCLUDE()
+ #pragma warning(push, 0)
+ #include
+ #pragma warning(pop)
+ #define TOML_DISABLE_CODE_ANALYSIS_WARNINGS \
+ __pragma(warning(disable: ALL_CODE_ANALYSIS_WARNINGS)) \
+ static_assert(true)
+ #else
+ #define TOML_DISABLE_CODE_ANALYSIS_WARNINGS
+ static_assert(true)
+ #endif
- #define TOML_DISABLE_SPAM_WARNINGS __pragma(warning(disable: 4127)) /* conditional expr is constant */ \
- __pragma(warning(disable: 4324)) /* structure was padded due to alignment specifier */ \
- __pragma(warning(disable: 4348)) \
- __pragma(warning(disable: 4505)) /* unreferenced local function removed */ \
- __pragma(warning(disable: 4514)) /* unreferenced inline function has been removed */ \
- __pragma(warning(disable: 4623)) /* default constructor was implicitly defined as deleted */ \
- __pragma(warning(disable: 4625)) /* copy constructor was implicitly defined as deleted */ \
- __pragma(warning(disable: 4626)) /* assignment operator was implicitly defined as deleted */ \
- __pragma(warning(disable: 4710)) /* function not inlined */ \
- __pragma(warning(disable: 4711)) /* function selected for automatic expansion */ \
- __pragma(warning(disable: 4820)) /* N bytes padding added */ \
- __pragma(warning(disable: 4946)) /* reinterpret_cast used between related classes */ \
- __pragma(warning(disable: 5026)) /* move constructor was implicitly defined as deleted */ \
- __pragma(warning(disable: 5027)) /* move assignment operator was implicitly defined as deleted */ \
- __pragma(warning(disable: 5045)) /* Compiler will insert Spectre mitigation */ \
- __pragma(warning(disable: 26451)) \
- __pragma(warning(disable: 26490)) \
- __pragma(warning(disable: 26495)) \
- __pragma(warning(disable: 26812)) \
- __pragma(warning(disable: 26819)) \
- static_assert(true)
+ #define TOML_DISABLE_SWITCH_WARNINGS \
+ __pragma(warning(disable: 4061)) \
+ __pragma(warning(disable: 4062)) \
+ __pragma(warning(disable: 4063)) \
+ __pragma(warning(disable: 26819)) \
+ static_assert(true)
- #define TOML_POP_WARNINGS __pragma(warning(pop)) \
- static_assert(true)
+ #define TOML_DISABLE_SPAM_WARNINGS \
+ __pragma(warning(disable: 4127)) /* conditional expr is constant */ \
+ __pragma(warning(disable: 4324)) /* structure was padded due to alignment specifier */ \
+ __pragma(warning(disable: 4348)) \
+ __pragma(warning(disable: 4464)) /* relative include path contains '..' */ \
+ __pragma(warning(disable: 4505)) /* unreferenced local function removed */ \
+ __pragma(warning(disable: 4514)) /* unreferenced inline function has been removed */ \
+ __pragma(warning(disable: 4582)) /* constructor is not implicitly called */ \
+ __pragma(warning(disable: 4623)) /* default constructor was implicitly defined as deleted */ \
+ __pragma(warning(disable: 4625)) /* copy constructor was implicitly defined as deleted */ \
+ __pragma(warning(disable: 4626)) /* assignment operator was implicitly defined as deleted */ \
+ __pragma(warning(disable: 4710)) /* function not inlined */ \
+ __pragma(warning(disable: 4711)) /* function selected for automatic expansion */ \
+ __pragma(warning(disable: 4820)) /* N bytes padding added */ \
+ __pragma(warning(disable: 4946)) /* reinterpret_cast used between related classes */ \
+ __pragma(warning(disable: 5026)) /* move constructor was implicitly defined as deleted */ \
+ __pragma(warning(disable: 5027)) /* move assignment operator was implicitly defined as deleted */ \
+ __pragma(warning(disable: 5039)) /* potentially throwing function passed to 'extern "C"' function */ \
+ __pragma(warning(disable: 5045)) /* Compiler will insert Spectre mitigation */ \
+ __pragma(warning(disable: 26451)) \
+ __pragma(warning(disable: 26490)) \
+ __pragma(warning(disable: 26495)) \
+ __pragma(warning(disable: 26812)) \
+ __pragma(warning(disable: 26819)) \
+ static_assert(true)
- #define TOML_DISABLE_WARNINGS __pragma(warning(push, 0)) \
- static_assert(true)
+ #define TOML_DISABLE_ARITHMETIC_WARNINGS \
+ __pragma(warning(disable: 4365)) /* argument signed/unsigned mismatch */ \
+ __pragma(warning(disable: 4738)) /* storing 32-bit float result in memory */ \
+ __pragma(warning(disable: 5219)) /* implicit conversion from integral to float */ \
+ static_assert(true)
+
+ #define TOML_POP_WARNINGS \
+ __pragma(warning(pop)) \
+ static_assert(true)
+
+ #define TOML_DISABLE_WARNINGS \
+ __pragma(warning(push, 0)) \
+ __pragma(warning(disable: 4348)) \
+ __pragma(warning(disable: 4668)) \
+ __pragma(warning(disable: 5105)) \
+ TOML_DISABLE_CODE_ANALYSIS_WARNINGS;\
+ TOML_DISABLE_SWITCH_WARNINGS; \
+ TOML_DISABLE_SPAM_WARNINGS; \
+ TOML_DISABLE_ARITHMETIC_WARNINGS; \
+ static_assert(true)
#define TOML_ENABLE_WARNINGS TOML_POP_WARNINGS
@@ -215,74 +263,87 @@
#if TOML_ICC
- #define TOML_PUSH_WARNINGS __pragma(warning(push)) \
- static_assert(true)
+ #define TOML_PUSH_WARNINGS \
+ __pragma(warning(push)) \
+ static_assert(true)
- #define TOML_DISABLE_SPAM_WARNINGS __pragma(warning(disable: 82)) /* storage class is not first */ \
- __pragma(warning(disable: 111)) /* statement unreachable (false-positive) */ \
- __pragma(warning(disable: 869)) /* unreferenced parameter */ \
- __pragma(warning(disable: 1011)) /* missing return (false-positive) */ \
- __pragma(warning(disable: 2261)) /* assume expr side-effects discarded */ \
- static_assert(true)
+ #define TOML_DISABLE_SPAM_WARNINGS \
+ __pragma(warning(disable: 82)) /* storage class is not first */ \
+ __pragma(warning(disable: 111)) /* statement unreachable (false-positive) */ \
+ __pragma(warning(disable: 869)) /* unreferenced parameter */ \
+ __pragma(warning(disable: 1011)) /* missing return (false-positive) */ \
+ __pragma(warning(disable: 2261)) /* assume expr side-effects discarded */ \
+ static_assert(true)
- #define TOML_POP_WARNINGS __pragma(warning(pop)) \
- static_assert(true)
+ #define TOML_POP_WARNINGS \
+ __pragma(warning(pop)) \
+ static_assert(true)
- #define TOML_DISABLE_WARNINGS __pragma(warning(push, 0)) \
- static_assert(true)
+ #define TOML_DISABLE_WARNINGS \
+ __pragma(warning(push, 0)) \
+ static_assert(true)
- #define TOML_ENABLE_WARNINGS TOML_POP_WARNINGS \
- static_assert(true)
+ #define TOML_ENABLE_WARNINGS \
+ TOML_POP_WARNINGS
#endif // icc
#if TOML_GCC
- #define TOML_PUSH_WARNINGS _Pragma("GCC diagnostic push") \
- static_assert(true)
+ #define TOML_PUSH_WARNINGS \
+ _Pragma("GCC diagnostic push") \
+ static_assert(true)
- #define TOML_DISABLE_SWITCH_WARNINGS _Pragma("GCC diagnostic ignored \"-Wswitch\"") \
- _Pragma("GCC diagnostic ignored \"-Wswitch-enum\"") \
- _Pragma("GCC diagnostic ignored \"-Wswitch-default\"") \
- static_assert(true)
+ #define TOML_DISABLE_SWITCH_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wswitch\"") \
+ _Pragma("GCC diagnostic ignored \"-Wswitch-enum\"") \
+ _Pragma("GCC diagnostic ignored \"-Wswitch-default\"") \
+ static_assert(true)
- #define TOML_DISABLE_INIT_WARNINGS _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
- _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
- _Pragma("GCC diagnostic ignored \"-Wuninitialized\"") \
- static_assert(true)
+ #define TOML_DISABLE_INIT_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wmissing-field-initializers\"") \
+ _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") \
+ _Pragma("GCC diagnostic ignored \"-Wuninitialized\"") \
+ static_assert(true)
- #define TOML_DISABLE_ARITHMETIC_WARNINGS _Pragma("GCC diagnostic ignored \"-Wfloat-equal\"") \
- _Pragma("GCC diagnostic ignored \"-Wsign-conversion\"") \
- _Pragma("GCC diagnostic ignored \"-Wchar-subscripts\"") \
- static_assert(true)
+ #define TOML_DISABLE_ARITHMETIC_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wfloat-equal\"") \
+ _Pragma("GCC diagnostic ignored \"-Wsign-conversion\"") \
+ _Pragma("GCC diagnostic ignored \"-Wchar-subscripts\"") \
+ static_assert(true)
- #define TOML_DISABLE_SHADOW_WARNINGS _Pragma("GCC diagnostic ignored \"-Wshadow\"") \
- static_assert(true)
+ #define TOML_DISABLE_SHADOW_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wshadow\"") \
+ static_assert(true)
- #define TOML_DISABLE_SPAM_WARNINGS _Pragma("GCC diagnostic ignored \"-Wpadded\"") \
- _Pragma("GCC diagnostic ignored \"-Wcast-align\"") \
- _Pragma("GCC diagnostic ignored \"-Wcomment\"") \
- _Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
- _Pragma("GCC diagnostic ignored \"-Wuseless-cast\"") \
- _Pragma("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") \
- _Pragma("GCC diagnostic ignored \"-Wsuggest-attribute=pure\"") \
- static_assert(true)
+ #define TOML_DISABLE_SPAM_WARNINGS \
+ _Pragma("GCC diagnostic ignored \"-Wpadded\"") \
+ _Pragma("GCC diagnostic ignored \"-Wcast-align\"") \
+ _Pragma("GCC diagnostic ignored \"-Wcomment\"") \
+ _Pragma("GCC diagnostic ignored \"-Wtype-limits\"") \
+ _Pragma("GCC diagnostic ignored \"-Wuseless-cast\"") \
+ _Pragma("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") \
+ _Pragma("GCC diagnostic ignored \"-Wsuggest-attribute=pure\"") \
+ static_assert(true)
- #define TOML_POP_WARNINGS _Pragma("GCC diagnostic pop") \
- static_assert(true)
+ #define TOML_POP_WARNINGS \
+ _Pragma("GCC diagnostic pop") \
+ static_assert(true)
- #define TOML_DISABLE_WARNINGS TOML_PUSH_WARNINGS; \
- _Pragma("GCC diagnostic ignored \"-Wall\"") \
- _Pragma("GCC diagnostic ignored \"-Wextra\"") \
- _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
- TOML_DISABLE_SWITCH_WARNINGS; \
- TOML_DISABLE_INIT_WARNINGS; \
- TOML_DISABLE_ARITHMETIC_WARNINGS; \
- TOML_DISABLE_SHADOW_WARNINGS; \
- TOML_DISABLE_SPAM_WARNINGS; \
- static_assert(true)
+ #define TOML_DISABLE_WARNINGS \
+ TOML_PUSH_WARNINGS; \
+ _Pragma("GCC diagnostic ignored \"-Wall\"") \
+ _Pragma("GCC diagnostic ignored \"-Wextra\"") \
+ _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
+ TOML_DISABLE_SWITCH_WARNINGS; \
+ TOML_DISABLE_INIT_WARNINGS; \
+ TOML_DISABLE_ARITHMETIC_WARNINGS; \
+ TOML_DISABLE_SHADOW_WARNINGS; \
+ TOML_DISABLE_SPAM_WARNINGS; \
+ static_assert(true)
- #define TOML_ENABLE_WARNINGS TOML_POP_WARNINGS
+ #define TOML_ENABLE_WARNINGS \
+ TOML_POP_WARNINGS
#define TOML_ATTR(...) __attribute__((__VA_ARGS__))
#ifndef TOML_ALWAYS_INLINE
@@ -382,12 +443,6 @@ is no longer necessary.
#endif
#undef TOML_CPP_VERSION
-#ifdef __has_include
- #define TOML_HAS_INCLUDE(header) __has_include(header)
-#else
- #define TOML_HAS_INCLUDE(header) 0
-#endif
-
#ifndef TOML_COMPILER_EXCEPTIONS
#if defined(__EXCEPTIONS) || defined(__cpp_exceptions)
#define TOML_COMPILER_EXCEPTIONS 1
@@ -440,6 +495,9 @@ is no longer necessary.
#ifndef TOML_PUSH_WARNINGS
#define TOML_PUSH_WARNINGS static_assert(true)
#endif
+#ifndef TOML_DISABLE_CODE_ANALYSIS_WARNINGS
+ #define TOML_DISABLE_CODE_ANALYSIS_WARNINGS static_assert(true)
+#endif
#ifndef TOML_DISABLE_SWITCH_WARNINGS
#define TOML_DISABLE_SWITCH_WARNINGS static_assert(true)
#endif
@@ -11963,19 +12021,19 @@ TOML_NAMESPACE_END;
// implementations of windows wide string nonsense
#if TOML_WINDOWS_COMPAT
-namespace winapi
-{
- extern "C"
- {
- int __stdcall WideCharToMultiByte(unsigned int CodePage, unsigned long dwFlags, const wchar_t* lpWideCharStr, int cchWideChar,
- const char* lpMultiByteStr, int cbMultiByte, const char* lpDefaultChar, int* lpUsedDefaultChar);
- int __stdcall MultiByteToWideChar(unsigned int CodePage, unsigned long dwFlags, const char* lpMultiByteStr, int cbMultiByte,
- const wchar_t* lpWideCharStr, int cchWideChar);
- }
-}
-
TOML_IMPL_NAMESPACE_START
{
+ namespace winapi
+ {
+ extern "C"
+ {
+ int __stdcall WideCharToMultiByte(unsigned int CodePage, unsigned long dwFlags, const wchar_t* lpWideCharStr, int cchWideChar,
+ char* lpMultiByteStr, int cbMultiByte, const char* lpDefaultChar, int* lpUsedDefaultChar);
+ int __stdcall MultiByteToWideChar(unsigned int CodePage, unsigned long dwFlags, const char* lpMultiByteStr, int cbMultiByte,
+ wchar_t* lpWideCharStr, int cchWideChar);
+ }
+ }
+
TOML_API
TOML_EXTERNAL_LINKAGE
std::string narrow(std::wstring_view str) noexcept
@@ -11990,7 +12048,7 @@ TOML_IMPL_NAMESPACE_START
if (len)
{
s.resize(static_cast(len));
- winapi::WideCharToMultiByte(65001, 0, str.data(), static_cast(str.length()), s.data(), len, nullptr, nullptr);
+ winapi::WideCharToMultiByte(65001, 0, str.data(), static_cast(str.length()), s.data(), len, nullptr, nullptr);
}
return s;
}
@@ -12007,7 +12065,7 @@ TOML_IMPL_NAMESPACE_START
if (len)
{
s.resize(static_cast(len));
- winapi::MultiByteToWideChar(65001, 0, str.data(), static_cast(str.length()), s.data(), len);
+ winapi::MultiByteToWideChar(65001, 0, str.data(), static_cast(str.length()), s.data(), len);
}
return s;
}
@@ -12258,6 +12316,7 @@ TOML_POP_WARNINGS; // TOML_DISABLE_SPAM_WARNINGS
#undef TOML_CONSTEVAL
#undef TOML_CPP
#undef TOML_DISABLE_ARITHMETIC_WARNINGS
+ #undef TOML_DISABLE_CODE_ANALYSIS_WARNINGS
#undef TOML_DISABLE_INIT_WARNINGS
#undef TOML_DISABLE_SPAM_WARNINGS
#undef TOML_DISABLE_SHADOW_WARNINGS
diff --git a/tools/generate_windows_test_targets.py b/tools/generate_windows_test_targets.py
index e0de93a..bc20e34 100644
--- a/tools/generate_windows_test_targets.py
+++ b/tools/generate_windows_test_targets.py
@@ -87,6 +87,28 @@ def main():
SHOULD_HAVE_EXCEPTIONS=1;%(PreprocessorDefinitions)
std{standard}
true
+ EnableAllWarnings
+ %(DisableSpecificWarnings);4127
+ %(DisableSpecificWarnings);4324
+ %(DisableSpecificWarnings);4464
+ %(DisableSpecificWarnings);4505
+ %(DisableSpecificWarnings);4514
+ %(DisableSpecificWarnings);4577
+ %(DisableSpecificWarnings);4582
+ %(DisableSpecificWarnings);4623
+ %(DisableSpecificWarnings);4625
+ %(DisableSpecificWarnings);4626
+ %(DisableSpecificWarnings);4710
+ %(DisableSpecificWarnings);4711
+ %(DisableSpecificWarnings);4738
+ %(DisableSpecificWarnings);4820
+ %(DisableSpecificWarnings);4866
+ %(DisableSpecificWarnings);4868
+ %(DisableSpecificWarnings);4946
+ %(DisableSpecificWarnings);5026
+ %(DisableSpecificWarnings);5027
+ %(DisableSpecificWarnings);5039
+ %(DisableSpecificWarnings);5045