fix: MSVC Release build fixed + pragmas usage refactored

This commit is contained in:
Mateusz Pusz
2021-03-30 20:00:23 +02:00
parent 8a26eaf420
commit 441db47928
7 changed files with 22 additions and 25 deletions

View File

@@ -21,17 +21,18 @@
// SOFTWARE. // SOFTWARE.
#include <units/bits/external/hacks.h> // IWYU pragma: keep #include <units/bits/external/hacks.h> // IWYU pragma: keep
UNITS_DIAGNOSTIC_PUSH
UNITS_DIAGNOSTIC_IGNORE_SHADOW
#include <units/generic/angle.h> #include <units/generic/angle.h>
#include <units/isq/si/energy.h> #include <units/isq/si/energy.h>
#include <units/isq/si/force.h> #include <units/isq/si/force.h>
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/isq/si/torque.h> // IWYU pragma: keep #include <units/isq/si/torque.h> // IWYU pragma: keep
#include <units/quantity_io.h> #include <units/quantity_io.h>
#include <iostream> UNITS_DIAGNOSTIC_POP
#if defined(UNITS_COMP_MSVC) #include <iostream>
#pragma warning( disable : 4459 ) // Disable shadowing warning.
#endif
int main() int main()
{ {

View File

@@ -24,7 +24,12 @@
#include <units/isq/si/length.h> #include <units/isq/si/length.h>
#include <units/quantity_kind.h> #include <units/quantity_kind.h>
UNITS_DIAGNOSTIC_PUSH
UNITS_DIAGNOSTIC_IGNORE_UNREACHABLE
#include <fmt/format.h> #include <fmt/format.h>
UNITS_DIAGNOSTIC_POP
#include <limits> #include <limits>
#include <ostream> #include <ostream>

View File

@@ -25,7 +25,12 @@
#include <units/chrono.h> #include <units/chrono.h>
#include <units/generic/dimensionless.h> #include <units/generic/dimensionless.h>
#include <units/isq/si/international/length.h> #include <units/isq/si/international/length.h>
UNITS_DIAGNOSTIC_PUSH
UNITS_DIAGNOSTIC_IGNORE_UNREACHABLE
#include <fmt/format.h> #include <fmt/format.h>
UNITS_DIAGNOSTIC_POP
#include <array> #include <array>
#include <exception> #include <exception>
#include <iostream> #include <iostream>

View File

@@ -26,21 +26,14 @@
#include <units/quantity.h> #include <units/quantity.h>
#include <string_view> #include <string_view>
#ifdef _MSC_VER UNITS_DIAGNOSTIC_PUSH
#pragma warning (push) UNITS_DIAGNOSTIC_IGNORE_UNREACHABLE
#pragma warning (disable:4702) // C4702: unreachable code UNITS_DIAGNOSTIC_IGNORE_SHADOW
#endif //_MSC_VER
// IWYU pragma: begin_exports // IWYU pragma: begin_exports
#include <fmt/format.h> #include <fmt/format.h>
#include <fmt/locale.h> #include <fmt/locale.h>
// IWYU pragma: end_exports // IWYU pragma: end_exports
UNITS_DIAGNOSTIC_POP
// #include <string>
#ifdef _MSC_VER
#pragma warning (pop)
#endif //_MSC_VER
// Grammar // Grammar
// //

View File

@@ -45,6 +45,7 @@
#define UNITS_DIAGNOSTIC_IGNORE_MISSING_BRACES UNITS_DIAGNOSTIC_IGNORE("-Wmissing-braces") #define UNITS_DIAGNOSTIC_IGNORE_MISSING_BRACES UNITS_DIAGNOSTIC_IGNORE("-Wmissing-braces")
#define UNITS_DIAGNOSTIC_IGNORE_NON_TEMPLATE_FRIEND UNITS_DIAGNOSTIC_IGNORE("-Wnon-template-friend") #define UNITS_DIAGNOSTIC_IGNORE_NON_TEMPLATE_FRIEND UNITS_DIAGNOSTIC_IGNORE("-Wnon-template-friend")
#define UNITS_DIAGNOSTIC_IGNORE_SHADOW UNITS_DIAGNOSTIC_IGNORE("-Wshadow") #define UNITS_DIAGNOSTIC_IGNORE_SHADOW UNITS_DIAGNOSTIC_IGNORE("-Wshadow")
#define UNITS_DIAGNOSTIC_IGNORE_UNREACHABLE
#else #else
#define UNITS_DIAGNOSTIC_PUSH UNITS_PRAGMA(warning(push)) #define UNITS_DIAGNOSTIC_PUSH UNITS_PRAGMA(warning(push))
#define UNITS_DIAGNOSTIC_POP UNITS_PRAGMA(warning(pop)) #define UNITS_DIAGNOSTIC_POP UNITS_PRAGMA(warning(pop))
@@ -52,7 +53,8 @@
#define UNITS_DIAGNOSTIC_IGNORE(X) UNITS_DIAGNOSTIC_IGNORE_PRAGMAS UNITS_PRAGMA(warning(disable : X)) #define UNITS_DIAGNOSTIC_IGNORE(X) UNITS_DIAGNOSTIC_IGNORE_PRAGMAS UNITS_PRAGMA(warning(disable : X))
#define UNITS_DIAGNOSTIC_IGNORE_MISSING_BRACES #define UNITS_DIAGNOSTIC_IGNORE_MISSING_BRACES
#define UNITS_DIAGNOSTIC_IGNORE_NON_TEMPLATE_FRIEND #define UNITS_DIAGNOSTIC_IGNORE_NON_TEMPLATE_FRIEND
#define UNITS_DIAGNOSTIC_IGNORE_SHADOW #define UNITS_DIAGNOSTIC_IGNORE_SHADOW UNITS_DIAGNOSTIC_IGNORE(4459)
#define UNITS_DIAGNOSTIC_IGNORE_UNREACHABLE UNITS_DIAGNOSTIC_IGNORE(4702)
#endif #endif
#if UNITS_COMP_CLANG #if UNITS_COMP_CLANG

View File

@@ -21,11 +21,6 @@
// SOFTWARE. // SOFTWARE.
#include <units/bits/external/hacks.h> // IWYU pragma: keep #include <units/bits/external/hacks.h> // IWYU pragma: keep
#if defined(UNITS_COMP_MSVC)
#pragma warning( disable : 4459 ) // Disable shadowing warning.
#endif
#include <units/format.h> #include <units/format.h>
#include <units/isq/iec80000/iec80000.h> #include <units/isq/iec80000/iec80000.h>
#include <units/isq/si/iau/iau.h> #include <units/isq/si/iau/iau.h>

View File

@@ -27,10 +27,6 @@
#include <units/isq/si/speed.h> #include <units/isq/si/speed.h>
#include <units/isq/si/time.h> #include <units/isq/si/time.h>
#if defined(UNITS_COMP_MSVC)
#pragma warning( disable : 4459 ) // Disable shadowing warning.
#endif
using namespace units; using namespace units;
using namespace units::isq; using namespace units::isq;
using namespace units::isq::si; using namespace units::isq::si;