Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
Visual Studio 2017 version 15.3 and later (available in /std:c++17 mode and later): A lambda expression may be declared as constexpr or used in a constant expression when the initialization of each data member that it captures or introduces is allowed within a constant expression.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
A lambda is implicitly constexpr if its result satisfies the requirements of a constexpr function:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
If a lambda is implicitly or explicitly constexpr, and you convert it to a function pointer, the resulting function is also constexpr:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
See also
C++ Language Reference
Function Objects in the C++ Standard Library
Function Call
for_each