C++ 中的 constexpr Lambda 運算式
Visual Studio 2017 15.3 版和更新版本 (可在 /std:c++17
模式和更新版本中使用):在常數運算式中允許初始化擷取或引進的每個資料成員時,可能會宣告為 constexpr
或使用 Lambda 運算式。
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
如果 Lambda 的結果符合函式的需求, constexpr
則為隱含 constexpr
方式:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
如果 Lambda 是隱含或明確 constexpr
,而且您會將它轉換成函式指標,則產生的函式也會 constexpr
是 :
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應