1
2
你的文章仍然一团糟,同一期有4个不同版本。我将关注第一个代码片段,因为它似乎是最接近[mcve]的代码片段,我将澄清如何正确使用lambda和函数对象。
这有点误导人。我建议将其更改为等效的,但更多地用于:
这意味着:声明一个名为
如您所见,您的函数接受一个经典的C函数指针。它不会接受任何类型的函数对象。这里要注意的是,没有捕获的lambda可以转换为函数指针。 如保留上述声明:
原因很容易理解。非捕获lambda可以等效于自由函数,但捕获lambda具有状态(由捕获集形成),因此它比简单的、经典的自由函数“更多”。
正如您所看到的,接受函数指针在很大程度上是一个古老的习语,因为这些限制(甚至不考虑传递任何类型的函数对象,例如
对于接受任何类型的可调用对象,通常有两个选项:通用模板或标准
模板对象
现在你可以打电话了
您还可能希望添加完美的转发(为了简洁起见,在示例中省略了)。
|
user193464 · 虚幻-小部件未在移动apk中显示 6 年前 |
RectangleEquals · 计算三维平面圆的最小半径 6 年前 |
Maximetinu · 通过引用分配的虚幻引擎4蓝图 7 年前 |
Elric · 开始使用Unreal Engine[关闭] 7 年前 |
SergioAAV · HTML5在Unreal4中的打包问题 7 年前 |
Aaron · 虚幻引擎4多人局域网-第二个玩家未生成 8 年前 |
Fons · Visual Studio无法识别非真实引擎 8 年前 |
Sean Reyes · 游戏客户端/服务器语言[已关闭] 8 年前 |
nukenine · 开发地球科学过程的图形模型 8 年前 |