* [Bug libstdc++/110970] clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category'
2023-08-10 9:52 [Bug libstdc++/110970] New: clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category' gcc-bugzilla at zulan dot net
@ 2023-08-10 12:29 ` redi at gcc dot gnu.org
2023-08-10 12:36 ` gcc-bugzilla at zulan dot net
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2023-08-10 12:29 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110970
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2023-08-10
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Clang 15, I assume?
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug libstdc++/110970] clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category'
2023-08-10 9:52 [Bug libstdc++/110970] New: clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category' gcc-bugzilla at zulan dot net
2023-08-10 12:29 ` [Bug libstdc++/110970] " redi at gcc dot gnu.org
@ 2023-08-10 12:36 ` gcc-bugzilla at zulan dot net
2023-08-10 12:55 ` redi at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: gcc-bugzilla at zulan dot net @ 2023-08-10 12:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110970
--- Comment #2 from gcc-bugzilla at zulan dot net ---
Yes, apologies for the missing information
clang version 15.0.7
g++ (GCC) 13.2.1 20230801
(Arch)
According to https://clang.llvm.org/cxx_status.html
P0634R3 / "Down with typename!" is implemented since Clang 16 (released in
March). So maybe this is actually not a problem for much longer. Might only
affect the combination of a very recent GCC with slightly outdated Clang.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug libstdc++/110970] clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category'
2023-08-10 9:52 [Bug libstdc++/110970] New: clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category' gcc-bugzilla at zulan dot net
2023-08-10 12:29 ` [Bug libstdc++/110970] " redi at gcc dot gnu.org
2023-08-10 12:36 ` gcc-bugzilla at zulan dot net
@ 2023-08-10 12:55 ` redi at gcc dot gnu.org
2023-08-10 22:32 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2023-08-10 12:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110970
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |rejects-valid
Status|NEW |ASSIGNED
Target Milestone|--- |13.3
Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
We aim to support at least two versions of Clang, so we have to wait for 17
before we can consider 15 too old. That said, the combination of the newest
-std and not-the-latest Clang is usually going to be a bit risky.
Anyway, I have a patch to fix this, which also cleans the code up a little.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug libstdc++/110970] clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category'
2023-08-10 9:52 [Bug libstdc++/110970] New: clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category' gcc-bugzilla at zulan dot net
` (2 preceding siblings ...)
2023-08-10 12:55 ` redi at gcc dot gnu.org
@ 2023-08-10 22:32 ` cvs-commit at gcc dot gnu.org
2023-08-11 15:36 ` cvs-commit at gcc dot gnu.org
2023-08-11 15:37 ` redi at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-08-10 22:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110970
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:
https://gcc.gnu.org/g:9cb2a7c8d54b1f6685bc509a07104c458262cb9f
commit r14-3134-g9cb2a7c8d54b1f6685bc509a07104c458262cb9f
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Aug 10 13:48:48 2023 +0100
libstdc++: Use alias template for iterator_category [PR110970]
This renames __iterator_category_t to __iter_category_t, for consistency
with std::iter_value_t, std::iter_difference_t and std::iter_reference_t
in C++20. Then use __iter_category_t in <bits/stl_iterator.h>, which
fixes the problem of the missing 'typename' that Clang 15 incorrectly
still requires.
libstdc++-v3/ChangeLog:
PR libstdc++/110970
* include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
__iter_category_t.
(iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
(__detail::__basic_const_iterator_iter_cat): Likewise.
* include/bits/stl_iterator_base_types.h (__iterator_category_t):
Rename to __iter_category_t.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug libstdc++/110970] clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category'
2023-08-10 9:52 [Bug libstdc++/110970] New: clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category' gcc-bugzilla at zulan dot net
` (3 preceding siblings ...)
2023-08-10 22:32 ` cvs-commit at gcc dot gnu.org
@ 2023-08-11 15:36 ` cvs-commit at gcc dot gnu.org
2023-08-11 15:37 ` redi at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-08-11 15:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110970
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:
https://gcc.gnu.org/g:2e094543715fbd1a5486d77dcbfeec52d86aba61
commit r13-7710-g2e094543715fbd1a5486d77dcbfeec52d86aba61
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Aug 10 13:48:48 2023 +0100
libstdc++: Use alias template for iterator_category [PR110970]
This renames __iterator_category_t to __iter_category_t, for consistency
with std::iter_value_t, std::iter_difference_t and std::iter_reference_t
in C++20. Then use __iter_category_t in <bits/stl_iterator.h>, which
fixes the problem of the missing 'typename' that Clang 15 incorrectly
still requires.
libstdc++-v3/ChangeLog:
PR libstdc++/110970
* include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
__iter_category_t.
(iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
(__detail::__basic_const_iterator_iter_cat): Likewise.
* include/bits/stl_iterator_base_types.h (__iterator_category_t):
Rename to __iter_category_t.
(cherry picked from commit 9cb2a7c8d54b1f6685bc509a07104c458262cb9f)
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug libstdc++/110970] clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category'
2023-08-10 9:52 [Bug libstdc++/110970] New: clang / c++23 missing 'typename' prior to dependent type name 'iterator_traits<_It>::iterator_category' gcc-bugzilla at zulan dot net
` (4 preceding siblings ...)
2023-08-11 15:36 ` cvs-commit at gcc dot gnu.org
@ 2023-08-11 15:37 ` redi at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2023-08-11 15:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110970
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Fixed for 13.3, thanks for the report.
^ permalink raw reply [flat|nested] 7+ messages in thread