https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94241

            Bug ID: 94241
           Summary: ranges::find_if doesn't like data structures defined
                    in a function
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: cjdb.ns at gmail dot com
  Target Milestone: ---

ranges::find_if chucks a wobbly when a struct is defined inside a function.
Seems to cooperate if the struct is in global scope.

# Diagnostic

```
In file included from
/usr/local/include/c++/10.0.1/bits/stl_iterator_base_types.h:71,
                 from /usr/local/include/c++/10.0.1/bits/stl_algobase.h:65,
                 from /usr/local/include/c++/10.0.1/algorithm:61,
                 from ice.cpp:1:
/usr/local/include/c++/10.0.1/bits/iterator_concepts.h:669:40: error:
'std::indirect_result_t<_Proj&, _Iter> std::projected<_Iter,
_Proj>::operator*() const [with _Iter = main()::s*; _Proj = std::identity;
std::indirect_result_t<_Proj&, _Iter> = main()::s&]', declared using local type
'main()::s', is used but never defined [-fpermissive]
  669 |       indirect_result_t<_Proj&, _Iter> operator*() const; // not
defined
      |
```

# System info

OS: Ubuntu 18.04 (WSL)

Version: gcc (GCC) 10.0.1 20200320 (experimental)

Git hash: 

Configured with: ../gcc/configure --disable-nls --disable-multilib
--enable-languages=c,c++ --disable-werror : (reconfigured) ../gcc/configure
--disable-nls --disable-multilib --enable-languages=c,c++ --disable-werror :
(reconfigured) ../gcc/configure --disable-nls --disable-multilib
--disable-werror CC=/usr/local/bin/gcc CFLAGS='-O3 -g0 -w'
LDFLAGS=-fuse-ld=gold CXX=/usr/local/bin/g++ CXXFLAGS='-O3 -g0 -w'
--enable-languages=c,c++,lto --no-create --no-recursion

Reply via email to