Clang keeps complain it ignores __declspec(dllexport)

Clang keeps complain it ignores __declspec(dllexport) in format.cc's instantiation of "detail::basic_data<void>;"

```
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<void>;
                ^
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<void>` in format.cc (without `__declspec(dllexport)` )
and make an explicit instantiation declaration (aka `extern template`) in format.h instead
This commit is contained in:
denchat 2021-04-09 01:44:07 +07:00 committed by GitHub
parent 5a8bf1f6a3
commit 0ad4dadcba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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