[clang] [clang] Implement P2582R1: CTAD from inherited constructors (PR #98788)

Haojian Wu via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 30 05:01:47 PDT 2024


================
@@ -936,19 +940,21 @@ Expr *buildIsDeducibleConstraint(Sema &SemaRef,
         Context.DeclarationNames.getCXXDeductionGuideName(AliasTemplate));
   };
 
+  TemplateDecl *TD = DeducingTemplate ? DeducingTemplate : AliasTemplate;
+
   SmallVector<TypeSourceInfo *> IsDeducibleTypeTraitArgs = {
       Context.getTrivialTypeSourceInfo(
           Context.getDeducedTemplateSpecializationType(
-              TemplateName(AliasTemplate), /*DeducedType=*/QualType(),
+              TemplateName(TD), /*DeducedType=*/QualType(),
----------------
hokein wrote:

Thanks for filing the issue.

> Is the best course of action in the meantime to update the implementation in this PR to accept that above code, or leave it as breaking until CWG responds?

I’m inclined to avoid breaking existing code. How about skipping the construction of the `is_deducible` type trait for this specific case (as your suggested resolution)?

https://github.com/llvm/llvm-project/pull/98788


More information about the cfe-commits mailing list