相关疑难解决方法(0)

是否可以将 lambda 表达式放入 C++ 中的映射或列表中?

@DanielLangr @luxun @cdhowie 对于 XY 问题感到抱歉。我不确定我能解释清楚,但我尽力了。情况几乎是这样的:有一个基础对象“Worker”和一些子对象。Chef\xe3\x80\x81tailor...孩子们的动作和walk\xe3\x80\x81run\xe3\x80\x81sleep...一样,但是技能不同,厨师可以做食物,裁缝可以做衣服。Invoker 调用 Worker dothings 但并不确切知道他们的职业。所以我在 Worker 的基础对象上添加了一个接口 dothings(Thing)。Thing 是一个枚举,值为 MakeFood\xe3\x80\x81MakeClothes...

\n\n
Worker *w = new Chef();\nw->dothings(MakeFood);//\nw->dothings(MakeClothes);//throw exception "w do not have skill"\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我认为也许可以在儿童中使用一个容器来描述它可以做什么以及如何做。

\n\n

希望我解释清楚。还有更好的解决方案吗?

\n\n

我想将不同的 lambda 表达式放入列表或 Qmap 中,如下所示。

\n\n
Qmap<String, lambda> map;\nmap.insert("first",[](int i) -> int {return i;});\nmap.insert("second",[](string s) -> string {return s;});\n
Run Code Online (Sandbox Code Playgroud)\n\n

在C++中可以吗?lambda 的类型是什么?

\n

c++

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1