This is a known bug in Clang’s concepts implementation, see https://github.com/llvm/llvm-project/issues/44178
The change https://reviews.llvm.org/D119544 is supposed to fix it, but it hasn’t been committed to Clang trunk yet (as of June 22 2022).
More Related Contents:
- Why must a std::ranges::filter_view object be non-const for querying its elements?
- What is a “span” and when should I use one?
- Can I take the address of a function defined in standard library?
- What is the (“spaceship”, three-way comparison) operator in C++?
- What exactly are C++ modules?
- Why does same_as concept check type equality twice?
- How to use source_location in a variadic template function?
- Class type non-type template parameter initialization does not compile
- non-defaulted operator doesn’t generate == and != in C++20
- Designated initializers in C++20
- Why does aggregate initialization not work anymore since C++20 if a constructor is explicitly defaulted or deleted?
- Does constraint subsumption only apply to concepts?
- C++20 constexpr vector and string not working
- C++ Concept that requires a member function with an OutputIterator as parameter
- Ramifications of C++20 requiring two’s complement
- Familiar template syntax for generic lambdas
- ‘auto’ as a template argument placeholder for a function parameter
- Comparing 3 modern c++ ways to convert integral values to strings
- In which access control context are concepts evaluated?
- Is C++20 ‘char8_t’ the same as our old ‘char’?
- Range TS idioms and the mysterious auto &&
- asio How to change the executor inside an awaitable?
- Why does Clang 12 refuse to initialize aggregates in the C++20 way?
- Is lambdification of a concept an improvement or bad practice?
- Why C++ ranges “transform -> filter” calls transform twice for values that match the filter’s predicate?
- Why is operator!= removed in C++20 for many standard library types?
- How to use C++20’s likely/unlikely attribute in if-else statement
- Will consteval allow using static_assert on function arguments?
- if constexpr – why is discarded statement fully checked?
- if constexpr – why is discarded statement fully checked?