t3nsor wrote:
> However it led to recursive concept checking.
Note that you don't need recursive concept checking to see the bug. You could
also use a concept that causes an error not in the immediate context when you
check it. For example
```
template <class... T>
concept C = [] {
static_assert(sizeof...(T) > 1);
return true;
}();
struct Deferred {
friend void foo(Deferred) {}
template <C TO> operator TO();
};
void bar(Deferred d) {
foo(d);
}
```
https://github.com/llvm/llvm-project/pull/185936
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits