For further background, see Richard's comments: http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-
20170109/181998.html
A patch to fix this is being worked on.
Thanks!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291439
91177308-0d34-0410-b5e6-
96231b3b80d8
// evaluate [...] a lambda-expression.
D = diag::err_lambda_in_constant_expression;
}
+
// C++1z allows lambda expressions as core constant expressions.
+ // FIXME: In C++1z, reinstate the restrictions on lambda expressions (CWG
+ // 1607) from appearing within template-arguments and array-bounds that
+ // are part of function-signatures. Be mindful that P0315 (Lambdas in
+ // unevaluated contexts) might lift some of these restrictions in a
+ // future version.
if (Rec.Context != ConstantEvaluated || !getLangOpts().CPlusPlus1z)
for (const auto *L : Rec.Lambdas)
Diag(L->getLocStart(), D);