将Lambda传递给C ++中另一个类的方法

时间:2019-07-10 15:01:54

标签: c++ lambda wt

我正在使用Wt在C ++ 14中工作,并且试图创建一个通用的“ UNDO”小部件以与表单字段一起使用。

Lambda的新手使我陷入困境-编译器抱怨 关于以下UndoIcon创建没有匹配的函数调用:

auto editField = templatePtr->bindWidget("lineedit", Wt::cpp14::make_unique<Wt::WLineEdit>());
editField->setText(Wt::toWString(m_initialValue));
const QString initialValue = m_initialValue; // Copy from member variable to local for lambda
auto undoIcon = Wt::cpp14::make_unique<UndoIcon>(1,[editField,initialValue] { editField->setText(Wt::toWString(initialValue)); });

我将UndoIcon类定义如下:

UndoIcon::UndoIcon(unsigned char iconSize, void (*callback)()) {
this->clicked().connect([=] { (*callback)(); });
}

是否可以通过这样的Lambda? SO上的各种(相似)答案都使用了我认为不需要的模板。

0 个答案:

没有答案