【发布时间】:2015-01-17 11:26:18
【问题描述】:
由于某种原因,这个 lambda 语句不想编译:
bool DepthFirstSearch = [](Graph *g, bool *ch, stack<int> &S, int v, int w) -> bool
{
//Here is recursive DFS code
};
出现错误:no suitable conversion function from: "lambda[]bool()->bool" to bool exists。
我的问题是为什么?
【问题讨论】:
-
您要存储 lambda 本身还是结果?对于结果,在末尾(
}之后)添加一个(...);(带有调用的参数)来实际调用它。如果你想存储它,以后调用它,使用auto DepthFirstSearch = [](..)...; -
好吧,您正在尝试使用 lambda 表达式初始化
bool值。您的意思是在该表达式的末尾调用 lambda ([](...) -> bool {...}(<arguments go here>))? -
递归 lambda?无论如何,这很困难。
标签: c++ c++11 recursion lambda boolean