diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2022-11-10 14:08:49 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2022-11-11 04:00:58 +0000 |
commit | f54ae4da1f60f4a2dea22ef184941d953442b86d (patch) | |
tree | 64b9bfdc234166de751ff46599e45e924fb15f11 | |
parent | 56d2222c58be78d5125bd8a1069364f0f4b2baa2 (diff) | |
download | gcc-f54ae4da1f60f4a2dea22ef184941d953442b86d.zip gcc-f54ae4da1f60f4a2dea22ef184941d953442b86d.tar.gz gcc-f54ae4da1f60f4a2dea22ef184941d953442b86d.tar.bz2 |
libstdc++: Add missing definition for <charconv> in C++14 mode
We support <charconv> in C++14 as an extension, but that means that
constexpr static data members are not implicitly inline. Add an
out-of-class definition for C++14 mode.
This fixes a FAIL when -std=gnu++14 is used:
FAIL: 20_util/from_chars/1.cc (test for excess errors)
libstdc++-v3/ChangeLog:
* include/std/charconv (__from_chars_alnum_to_val_table::value):
[!__cpp_inline_variables]: Add non-inline definition.
-rw-r--r-- | libstdc++-v3/include/std/charconv | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libstdc++-v3/include/std/charconv b/libstdc++-v3/include/std/charconv index 09163af..acad865 100644 --- a/libstdc++-v3/include/std/charconv +++ b/libstdc++-v3/include/std/charconv @@ -444,6 +444,12 @@ namespace __detail static constexpr type value = (_DecOnly, _S_make_table()); }; +#if ! __cpp_inline_variables + template<bool _DecOnly> + const typename __from_chars_alnum_to_val_table<_DecOnly>::type + __from_chars_alnum_to_val_table<_DecOnly>::value; +#endif + // If _DecOnly is true: if the character is a decimal digit, then // return its corresponding base-10 value, otherwise return a value >= 127. // If _DecOnly is false: if the character is an alphanumeric digit, then |