Dans l'exemple suivant, je peux accéder au constexpr
variables x
à l' intérieur du lambda y
sans capturer explicitement. Cela n'est pas possible si x
n'est pas déclaré comme constexpr
.
Existe-t-il des règles spéciales qui s'appliquent à constexpr
pour la capture?
int foo(auto l) {
// OK
constexpr auto x = l();
auto y = []{return x;};
return y();
// NOK
// auto x2 = l();
// auto y2 = []{ return x2; };
// return y2();
}
auto l2 = []{return 3;};
int main() {
foo(l2);
}