我正在使用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上的各种(相似)答案都使用了我认为不需要的模板。