我想使用 lambda 作为 C++ 函数的参数,但我不知道在函数声明中指定哪种类型。我想做的是:
void myFunction(WhatToPutHere lambda){
//some things
}
我试过 void myFunction(auto lambda)
和 void myFunction(void lambda)
但这些代码都没有编译。万一这很重要,lambda 不会返回任何内容。
如何在 C++ 函数中使用 lambda 作为参数?
最佳答案
你有两种方法:制作你的函数模板:
template <typename F>
void myFunction(F&& lambda)
{
//some things
}
或删除类型(例如 std::function
):
void
myFunction(const std::function<void()/*type of your lamdba::operator()*/>& f)
{
//some things
}
关于c++ - 使用 lambda 作为 C++ 函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40844622/