C++ Lambda (cont)
Lambda expressions (since C++11)
Constructs a closure (an unnamed function object capable of capturing variables in scope).
Syntax
Lambda expressions without an explicit template parameter list (possibly non-generic)
[ captures ] front-attr (optional) ( params ) specs (optional) except (optional)back-attr (optional) trailing (optional) requires (optional) contract-specs (optional) { body } |
(1) | ||||||||
[ captures ] { body } |
(2) | (until C++23) | |||||||
[ captures ] front-attr (optional) trailing (optional) contract-specs (optional) { body } |
(2) | (since C++23) | |||||||
[ captures ] front-attr (optional) exceptback-attr (optional) trailing (optional) contract-specs (optional) { body } |
(3) | (since C++23) | |||||||
[ captures ] front-attr (optional) specs except (optional)back-attr (optional) trailing (optional) contract-specs (optional) { body } |
(4) | (since C++23) | |||||||
Lambda expressions with an explicit template parameter list (always generic) (since C++20)
[ captures ] < tparams > t-requires (optional)front-attr (optional) ( params ) specs (optional) except (optional)back-attr (optional) trailing (optional) requires (optional) contract-specs (optional) { body } |
(1) | ||||||||
[ captures ] < tparams > t-requires (optional) { body } |
(2) | (until C++23) | |||||||
[ captures ] < tparams > t-requires (optional)front-attr (optional) trailing (optional) contract-specs (optional) { body } |
(2) | (since C++23) | |||||||
[ captures ] < tparams > t-requires (optional) front-attr (optional) exceptback-attr (optional) trailing (optional) contract-specs (optional) { body } |
(3) | (since C++23) | |||||||
[ captures ] < tparams > t-requires (optional) front-attr (optional) specs except (optional)back-attr (optional) trailing (optional) contract-specs (optional) { body } |
(4) | (since C++23) | |||||||
Tin khác: