gpt4 book ai didi

c++ - 是否可以用 lambda 初始化静态变量?

转载 作者:IT老高 更新时间:2023-10-28 22:17:16 50 4
gpt4 key购买 nike

我试过了:

#include <map>

int main() {

static std::map<int,int> myMap = [](){
std::map<int,int> myMap;
return myMap;
};

}

错误:

<stdin>: In function 'int main()':
<stdin>:8:3: error: conversion from 'main()::<lambda()>' to non-scalar type 'std::map<int, int>' requested

是的,我知道我可以为它创建另一个“正常”函数,它可以工作,但 lambdas 不能以这种方式初始化对象。

最佳答案

是的,确实有可能。

static std::map<int,int> myMap = [](){
std::map<int,int> myMap;
return myMap;
}();

注意最后的()。您正在将 myMap 分配给 lambda,但您确实想将其分配给 lambda 的结果。你必须为此调用它。

关于c++ - 是否可以用 lambda 初始化静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15581662/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com