From 0ad4dadcba0c7b8d625a4555cf1e1e7c0fdbc361 Mon Sep 17 00:00:00 2001 From: denchat <19730041+denchat@users.noreply.github.com> Date: Fri, 9 Apr 2021 01:44:07 +0700 Subject: [PATCH] Clang keeps complain it ignores __declspec(dllexport) Clang keeps complain it ignores __declspec(dllexport) in format.cc's instantiation of "detail::basic_data;" ``` C:/Users/User/AppData/Roaming/fmt-master/src/format.cc:58:17: warning: 'dllexport' attribute ignored on explicit instantiation definition [-Wignored-attributes] template struct FMT_INSTANTIATION_DEF_API detail::basic_data; ^ C:/Users/User/AppData/Roaming/fmt-master/include\fmt/core.h:228:37: note: expanded from macro 'FMT_INSTANTIATION_DEF_API' # define FMT_INSTANTIATION_DEF_API FMT_API ^ C:/Users/User/AppData/Roaming/fmt-master/include\fmt/core.h:210:32: note: expanded from macro 'FMT_API' # define FMT_API __declspec(dllexport) ^ 1 warning generated. ``` I guess we have to make an explicit instantiation definition of `basic_data` in format.cc (without `__declspec(dllexport)` ) and make an explicit instantiation declaration (aka `extern template`) in format.h instead --- include/fmt/core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/fmt/core.h b/include/fmt/core.h index 45bf19bb..0d51998f 100644 --- a/include/fmt/core.h +++ b/include/fmt/core.h @@ -224,7 +224,7 @@ # define FMT_EXTERN_TEMPLATE_API #endif #ifndef FMT_INSTANTIATION_DEF_API -# define FMT_INSTANTIATION_DEF_API FMT_API +# define FMT_INSTANTIATION_DEF_API #endif #ifndef FMT_HEADER_ONLY