Я работаю над заданием, включающим различные типы деревьев, для типов деревьев мой профессор предоставил нам следующий код:
class TreeClass
{
private:
typedef void (*FuncType)(const E& item);
class Node
{
friend class Tree<E>;
};
void traverse (Node* node, FuncType func);
public:
void traverse(FuncType func);
};
Мы должны передать func в качестве аргумента лямбда-функции длявызов метода в main.Я попытался реализовать его, определив его в вызове метода, т. Е.
myTree.traverse([] (string nodeData) -> void {cout << nodeData << endl;});
Я также попытался установить определение лямбда-функции для переменной, т. Е.
int main(int argc, char** argv)
{
auto func = [] (string nodeData) -> void
{
cout << nodeData << endl;
};
Tree<string> myTree;
myTree.traverse(func);
}
Ошибка, которую я получаюэто no matching function call to 'traverse'
Я действительно не уверен, что я делаю неправильно синтаксически или логически, так как я пробовал много разных способов и типов данных.Спасибо за помощь.