我最近遇到了一段代码,如下所示:
static typename handle_set::iterator find(T* p)
{
return std::find_if(handles().begin(), handles().end(), [p](const std::unique_ptr<T,D>& l) { return l.get() == p; });
}
在哪里
typedef typename std::set<std::unique_ptr<T,D>> handle_set;
static handle_set& handles(void)
{
static handle_set h_;
return h_;
}
我的问题是关于这部分:
[p](const std::unique_ptr<T,D>& l) { return l.get() == p; }
这是函数的第三个参数std::find_if()
。第三个参数可以是函数指针。这是在另一个函数的参数中定义函数指针的内联方式吗?我以前没有见过这种用法。我的理解正确吗?
谢谢。