On Sat, 19 Nov 2022 at 13:03, François Dumont via Libstdc++
<libstd...@gcc.gnu.org> wrote:
>
> Without this qualification I have this in _GLIBCXX_INLINE_VERSION mode:
>
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.h:2649:
> note: candidate: 'template<class _CharT> bool std::__9::isxdigit(_CharT,
> const locale&)'
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.h:2649:
> note:   template argument deduction/substitution failed:
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/format:1540:
> note:   candidate expects 2 arguments, 1 provided
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/format:1630:
> error: no matching function for call to 'isxdigit(const
> std::__9::basic_string_view<char>::value_type&)'
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.h:2649:
> note: candidate: 'template<class _CharT> bool std::__9::isxdigit(_CharT,
> const locale&)'
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/locale_facets.h:2649:
> note:   template argument deduction/substitution failed:
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/format:1630:
> note:   candidate expects 2 arguments, 1 provided
> compiler exited with status 1
> FAIL: 17_intro/headers/c++2020/all_attributes.cc (test for excess errors)
> Excess errors:
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/format:1540:
> error: no matching function for call to 'isxdigit(const
> std::__9::basic_string_view<char>::value_type&)'
> /home/fdt/dev/gcc/build_versioned_ns/x86_64-pc-linux-gnu/libstdc++-v3/include/format:1630:
> error: no matching function for call to 'isxdigit(const
> std::__9::basic_string_view<char>::value_type&)'
>
> It sounds like the most reasonable fix as this is how toupper is being
> called.

I think the real problem is that include/c_global/cctype is missing
the NAMESPACE_VERSION macros.

All declarations of std::isxdigit etc should be in the same namespace,
precisely so we don't need to do this.

>
>      libstdc++: Add missing std qualification on isxdigit calls
>
>      libstdc++-v3/ChangeLog
>
>              * include/std/format: Add std qualification on isxdigit calls.
>
> Ok to commit ?

Yes, OK.

Reply via email to