cor3ntin wrote:
In C++26, exceptions are allowed in a constant evaluated context, which is used
extensively by reflection and maybe P2300. I also think allowing `try` not to
be a keyword in some modes would harm the ecosystem.
Here is an interesting scenario
```cpp
constexpr void g() {
throw 42;
}
constexpr int f() {
try {g(); } catch {}
return 0;
}
```
static_assert(f() == 0); // the call to g() from here should be allowed
int main() {
return f(); // but not here if we want to disallow exceptions
}
```
So, now that I think about it, doing it at code gen is the only solution post
C++26
https://github.com/llvm/llvm-project/pull/139859
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits