【发布时间】:2017-06-28 17:44:59
【问题描述】:
我想创建一个我想保留在范围之外的对象,但要设置对其字段的引用。这种方法好用吗?
A* a;
B* b;
[a, b]
{
static Loader loader("some", "argument", "the constructor", "takes");
a = loader.getA();
b = loader.getB();
}();
匿名 lambda 是否随其拥有的值一起销毁?有没有更好的设计模式来实现同样的目标?
好吧,这似乎是一个好方法。我的问题仍然是匿名 lambda 是否在解析时被销毁(以及拥有的静态变量)。
【问题讨论】:
-
@Shiro 问题更像是,匿名 lambdas 是否是临时的?
-
为什么要让它超出范围?有什么问题?
-
@Barry 我可以很好地将我的临时加载程序保留在范围内,这只是我的痴迷,不将任何我实际上不想再访问的内容保留在范围内。
标签: c++ lambda static singleton c++17