From cd24818d73787ae09a1ce88be228417750a9ebe5 Mon Sep 17 00:00:00 2001 From: Matthias Moulin Date: Thu, 23 May 2024 19:57:29 +0200 Subject: [PATCH] MSVC 17.10.0 + modules cannot find definition MSVC regressed since the new 17.10.0 compiler update. node<> cannot be found for detail::dynamic_arg_list::typed_node. --- include/fmt/args.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/fmt/args.h b/include/fmt/args.h index 71c3bb908830f..bece5b2600b99 100644 --- a/include/fmt/args.h +++ b/include/fmt/args.h @@ -30,15 +30,15 @@ auto unwrap(const std::reference_wrapper& v) -> const T& { return static_cast(v); } -class dynamic_arg_list { - // Workaround for clang's -Wweak-vtables. Unlike for regular classes, for - // templates it doesn't complain about inability to deduce single translation - // unit for placing vtable. So storage_node_base is made a fake template. - template struct node { - virtual ~node() = default; - std::unique_ptr> next; - }; +// Workaround for clang's -Wweak-vtables. Unlike for regular classes, for +// templates it doesn't complain about inability to deduce single translation +// unit for placing vtable. So storage_node_base is made a fake template. +template struct node { + virtual ~node() = default; + std::unique_ptr> next; +}; +class dynamic_arg_list { template struct typed_node : node<> { T value;