Suppressing clang complain "forward declaration"

Clang complains about "forward declaration of template entity" of all basic_data<>'s members that do not have definitions in `format.h`

```
C:/Users/User/AppData/Roaming/fmt-master/include\fmt/format.h:956:25: warning: instantiation of variable 'fmt::detail::basic_data<>::powers_of_10_64' required here, but no definition is available [-Wundefined-var-template]
  static const uint64_t powers_of_10_64[];
                        ^
C:/Users/User/AppData/Roaming/fmt-master/include\fmt/format.h:956:25: note: forward declaration of template entity is here
C:/Users/User/AppData/Roaming/fmt-master/include\fmt/format.h:956:25: note: add an explicit instantiation declaration to suppress this warning if 'fmt::detail::basic_data<>::powers_of_10_64' is explicitly instantiated in another translation unit
```
This commit is contained in:
denchat 2021-04-17 21:39:57 +07:00 committed by GitHub
parent 6271406233
commit 172b031a50
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3887,6 +3887,29 @@ extern template int snprintf_float<long double>(long double value,
int precision,
float_specs specs,
buffer<char>& buf);
extern template const uint64_t basic_data<void>::powers_of_10_64[];
extern template const uint32_t basic_data<void>::zero_or_powers_of_10_32_new[];
extern template const uint64_t basic_data<void>::zero_or_powers_of_10_64_new[];
extern template const uint64_t basic_data<void>::grisu_pow10_significands[];
extern template const int16_t basic_data<void>::grisu_pow10_exponents[];
extern template const divtest_table_entry<uint32_t> basic_data<void>::divtest_table_for_pow5_32[];
extern template const divtest_table_entry<uint64_t> basic_data<void>::divtest_table_for_pow5_64[];
extern template const uint64_t basic_data<void>::dragonbox_pow10_significands_64[];
extern template const uint128_wrapper basic_data<void>::dragonbox_pow10_significands_128[];
#if !FMT_USE_FULL_CACHE_DRAGONBOX
extern template const uint64_t basic_data<void>::powers_of_5_64[];
extern template const uint32_t basic_data<void>::dragonbox_pow10_recovery_errors[];
#endif
// GCC generates slightly better code for pairs than chars.
extern template const basic_data<void>::digit_pair basic_data<void>::digits[];
extern template const char basic_data<void>::foreground_color[];
extern template const char basic_data<void>::background_color[];
extern template const char basic_data<void>::reset_color[5];
extern template const wchar_t basic_data<void>::wreset_color[5];
extern template const char basic_data<void>::signs[];
// DEPRECATED! These are for ABI compatibility.
extern template const uint32_t basic_data<void>::zero_or_powers_of_10_32[];
extern template const uint64_t basic_data<void>::zero_or_powers_of_10_64[];
} // namespace detail
#endif