gpt4 book ai didi

c++11 - 静态 lambda 有什么用处/不明智吗?

转载 作者:行者123 更新时间:2023-12-01 11:39:10 25 4
gpt4 key购买 nike

我正在尝试跟踪一个很难重现的错误。我有一个项目池,并使用以下方法在客户完成后自动检查池项目:

typedef std::shared_ptr<T> Handle;

Handle MyPool::checkOut()
{
static const auto CheckInDeleter = [this](T* item)
{
this->checkIn(item);
};

return Handle(item, CheckInDeleter);
}

我的问题是这不安全吗? this 会被分配给第一个 checkout 项目的池吗?

最佳答案

是的,static函数作用域变量被分配一次,所以只有一个 lambda 对象,它将首先引用 MyPoolcheckOut调用的成员函数。它可能不是您需要的,所以只需删除 static .

关于c++11 - 静态 lambda 有什么用处/不明智吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408229/

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