On Tue, 15 Jun 2021 at 21:32, Tim Song wrote: > > CPOs are specified as actual semiregular function objects that can be > copied and constructed freely, so it seems a bit hostile to make them > final/non-addressable? (It's debatable whether the type of a CPO is a > type "specified in the C++ standard library" for which [derivation]/4 > would apply.)
I noticed that libstdc++ was failing some libc++ tests, but that was only for ranges::advance etc and not the CPOs. I guess I got a bit carried away, and it shouldn't apply to the CPOs, only the [range.iter.ops] "function templates" (which are not really function templates).