c++ - 为什么要定义一个返回结构的 lambda 函数而不是直接定义结构?
问题描述
我看过一些基本上可以做到这一点的代码:
struct A {
int a;
int b;
};
static A default_a = []() {
A ret;
ret.a = 1;
ret.b = 2;
return ret;
}();
为什么这样写?我会写:
static A default_a {
.a = 1,
.b = 2,
};
这些中的任何一个都是首选吗?
解决方案
对我来说看起来像是一个重构工件。过去的代码用来做一些不同的事情,需要更复杂的初始化代码。该代码在某个时候被删除,但 lambda 保留了下来。
推荐阅读
- odoo - 多公司中 stock.moves.line 的 Odoo 12 域过滤器
- kubernetes - SYS_TIME 功能现在在 kubernetes 中工作
- html - W3 CSS 仅响应移动视图
- r - R中函数内的dplyr过滤器问题
- javascript - 如何在 Github 存储库和 GitHub 页面上呈现不同的降价以添加 iframe?
- ios - 来自顶级 Swift 5 的 UIScrollView 弹跳问题
- julia - 如何在 Julia 中搜索和操作稀疏矩阵
- docker - Github Actions 中的非交互式 docker 登录
- apache-spark - 如何在pyspark中将值分成不同的列?
- vba - 通过导航表单传递查询表达式