[clang] [clang] SFINAE context refactor (PR #164703)
Corentin Jabot via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 23 05:07:20 PDT 2025
================
@@ -12394,45 +12391,65 @@ class Sema final : public SemaBase {
/// failures rather than hard errors.
bool AccessCheckingSFINAE;
+ class SFINAETrap;
+
+ struct SFINAEContextBase {
+ SFINAEContextBase(Sema &S, SFINAETrap *Cur)
+ : S(S), Prev(std::exchange(S.CurrentSFINAEContext, Cur)) {}
+
+ protected:
+ Sema &S;
+ ~SFINAEContextBase() { S.CurrentSFINAEContext = Prev; }
+
+ private:
+ SFINAETrap *Prev;
+ };
+
+ struct NonSFINAEContext : SFINAEContextBase {
----------------
cor3ntin wrote:
```suggestion
struct NonSFINAEContextRAII : SFINAEContextBase {
```
Maybe that would be clearer?
https://github.com/llvm/llvm-project/pull/164703
More information about the cfe-commits
mailing list