Clang complains about the missing typename. I believe it's not required in a more complete implementation of C++, but it's nicer to support less complete implementations. --- libstdc++-v3/include/std/ranges | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges index 8bf359e477c..220a44e11a8 100644 --- a/libstdc++-v3/include/std/ranges +++ b/libstdc++-v3/include/std/ranges @@ -3583,7 +3583,7 @@ namespace views::__adaptor static auto _S_iter_cat() { using _Base = elements_view::_Base<_Const>; - using _Cat = iterator_traits<iterator_t<_Base>>::iterator_category; + using _Cat = typename iterator_traits<iterator_t<_Base>>::iterator_category; using _Res = decltype((std::get<_Nm>(*std::declval<iterator_t<_Base>>()))); if constexpr (!is_lvalue_reference_v<_Res>) return input_iterator_tag{}; -- 2.31.1