diff --git a/src/core/include/mp-units/bits/external/fixed_string.h b/src/core/include/mp-units/bits/external/fixed_string.h index d7fb80f4..44844911 100644 --- a/src/core/include/mp-units/bits/external/fixed_string.h +++ b/src/core/include/mp-units/bits/external/fixed_string.h @@ -22,9 +22,9 @@ #pragma once -#include // IWYU pragma: keep // TODO use when moved to C++20 modules (parsing takes too long for each translation unit) #include +#include // IWYU pragma: keep // IWYU pragma: begin_exports #include diff --git a/src/core/include/mp-units/bits/external/hacks.h b/src/core/include/mp-units/bits/external/hacks.h index a24a884a..e424d997 100644 --- a/src/core/include/mp-units/bits/external/hacks.h +++ b/src/core/include/mp-units/bits/external/hacks.h @@ -108,46 +108,3 @@ #define MP_UNITS_CONSTRAINED_NTTP_WORKAROUND(X) X #endif - -#if MP_UNITS_USE_FMTLIB - -MP_UNITS_DIAGNOSTIC_PUSH -MP_UNITS_DIAGNOSTIC_IGNORE_UNREACHABLE -MP_UNITS_DIAGNOSTIC_IGNORE_SHADOW -#include -MP_UNITS_DIAGNOSTIC_POP - -#define MP_UNITS_STD_FMT fmt -#define MP_UNITS_FMT_LOCALE(loc) (loc).template get() -#define MP_UNITS_FMT_TO_ARG_ID(arg) (arg) -#define MP_UNITS_FMT_FROM_ARG_ID(arg) (arg) - -// This re-uses code from fmt; -#if FMT_EXCEPTIONS -#if FMT_MSC_VERSION || defined(__NVCC__) -#define MP_UNITS_THROW(x) ::fmt::detail::do_throw(x) -#else -#define MP_UNITS_THROW(x) throw x -#endif -#else -#define MP_UNITS_THROW(x) \ - do { \ - FMT_ASSERT(false, (x).what()); \ - } while (false) -#endif - -#else - -#if !defined __cpp_lib_format && !defined MP_UNITS_COMP_CLANG -#error "std::formatting facility not supported" -#endif - -#include - -#define MP_UNITS_STD_FMT std -#define MP_UNITS_FMT_LOCALE(loc) loc -#define MP_UNITS_FMT_TO_ARG_ID(arg) static_cast(arg) -#define MP_UNITS_FMT_FROM_ARG_ID(arg) static_cast(arg) -#define MP_UNITS_THROW(arg) throw arg - -#endif diff --git a/src/core/include/mp-units/compat_macros.h b/src/core/include/mp-units/compat_macros.h index 4ab02761..25666a0d 100644 --- a/src/core/include/mp-units/compat_macros.h +++ b/src/core/include/mp-units/compat_macros.h @@ -37,3 +37,46 @@ } name #endif + +#if MP_UNITS_USE_FMTLIB + +MP_UNITS_DIAGNOSTIC_PUSH +MP_UNITS_DIAGNOSTIC_IGNORE_UNREACHABLE +MP_UNITS_DIAGNOSTIC_IGNORE_SHADOW +#include +MP_UNITS_DIAGNOSTIC_POP + +#define MP_UNITS_STD_FMT fmt +#define MP_UNITS_FMT_LOCALE(loc) (loc).template get() +#define MP_UNITS_FMT_TO_ARG_ID(arg) (arg) +#define MP_UNITS_FMT_FROM_ARG_ID(arg) (arg) + +// This re-uses code from fmt; +#if FMT_EXCEPTIONS +#if FMT_MSC_VERSION || defined(__NVCC__) +#define MP_UNITS_THROW(x) ::fmt::detail::do_throw(x) +#else +#define MP_UNITS_THROW(x) throw x +#endif +#else +#define MP_UNITS_THROW(x) \ + do { \ + FMT_ASSERT(false, (x).what()); \ + } while (false) +#endif + +#else + +#if !defined __cpp_lib_format && !defined MP_UNITS_COMP_CLANG +#error "std::formatting facility not supported" +#endif + +#include + +#define MP_UNITS_STD_FMT std +#define MP_UNITS_FMT_LOCALE(loc) loc +#define MP_UNITS_FMT_TO_ARG_ID(arg) static_cast(arg) +#define MP_UNITS_FMT_FROM_ARG_ID(arg) static_cast(arg) +#define MP_UNITS_THROW(arg) throw arg + +#endif