OSDN Git Service

[Concepts] Make constraint expressions unevaluated until satisfaction checking
authorSaar Raz <saar@raz.email>
Fri, 24 Jan 2020 00:22:17 +0000 (02:22 +0200)
committerSaar Raz <saar@raz.email>
Fri, 24 Jan 2020 00:24:21 +0000 (02:24 +0200)
commit73eaf62463b4a29adf4194685af12d1a5d172987
tree7a43f3c3596a530f757f3774d52f06b5a6f0e462
parent30179d7ecf6a2f986ed13de112ddaf0d0e966f38
[Concepts] Make constraint expressions unevaluated until satisfaction checking

As per P1980R0, constraint expressions are unevaluated operands, and their constituent atomic
constraints only become constant evaluated during satisfaction checking.

Change the evaluation context during parsing and instantiation of constraints to unevaluated.
clang/lib/Parse/ParseExpr.cpp
clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
clang/test/CXX/expr/expr.prim/expr.prim.req/nested-requirement.cpp
clang/test/SemaTemplate/cxx2a-constraint-exprs.cpp [new file with mode: 0644]