diff --git a/src/fmt.cc b/src/fmt.cc index 728436ffca1d..b4910336e7c6 100644 --- a/src/fmt.cc +++ b/src/fmt.cc @@ -75,6 +75,11 @@ export module fmt; #define FMT_END_DETAIL_NAMESPACE \ } \ export { + +#if defined(_MSC_FULL_VER) && _MSC_FULL_VER > 192930036 +#define FMT_USE_NONTYPE_TEMPLATE_PARAMETERS 0 +#endif + // all library-provided declarations and definitions // must be in the module purview to be exported #include "fmt/args.h" @@ -86,7 +91,10 @@ export module fmt; #include "fmt/printf.h" #include "fmt/xchar.h" +// gcc doesn't yet implement private module fragments +#if !FMT_GCC_VERSION module : private; +#endif #include "format.cc" #include "os.cc" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index bd94b95ec23f..abaef78a8e31 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -94,10 +94,10 @@ if (FMT_CAN_MODULE) $) enable_module(test-module) - #add_fmt_test(module-test MODULE) + add_fmt_test(module-test MODULE) if (MSVC) target_compile_options(test-module PRIVATE /utf-8) - #target_compile_options(module-test PRIVATE /utf-8) + target_compile_options(module-test PRIVATE /utf-8) endif () endif () diff --git a/test/module-test.cc b/test/module-test.cc index fe38a79a344b..f0399d4ee5b6 100644 --- a/test/module-test.cc +++ b/test/module-test.cc @@ -9,6 +9,12 @@ // All Rights Reserved // {fmt} module. +#ifdef _MSC_FULL_VER +// hide some implementation bugs in msvc +// that are not essential to users of the module. +#define FMT_HIDE_MODULE_BUGS +#endif + #include #include #include