Мне нужно смешать файлы C ++ и Objective-c (++). У меня есть стек в следующей задаче:
У меня есть код:
connect(menu_action,&QAction::triggered, [=]()
{
//do_smthing();
});
Но когда я пытаюсь скомпилировать файл, содержащий этот код (файл .mm), у меня появляется ошибка «исключенное выражение».
исключенное выражение и компилятор указывают на символ
=
после символа[
,
Как я могу перестроить этот код в Objective-C?
Ваш синтаксис плохой. Это должно читать: connect(menu_action, &QAction::triggered, [=]{do_smthing();});
Обратите внимание на конечную скобку перед точкой с запятой.
Стоит сказать, что если вы просто вызываете функцию в своей лямбде, вы должны предпочесть указатели функций лямбдам. Это сохранит в Qt поддержку сигналов и слотов, и вы сможете звонить sender()
в вашем слоте.