lambda表达式中出现无效的使用Void表达式错误
Invalid Use of Void expression error in lambda expression
在使用connect
函数时,我正试图在Qt中使用lambda表达式
我的代码是这样的:
for(int i = propertyToNodeMap.size() -1 ; i >= 0 ; --i)
{
connect(&mainDialog,mainDialog.accepted(),[=](){
; //sth ....
});
}
我在Windows 7上使用Qt 5.3和MinGW作为编译器。
错误消息为:
error: invalid use of void expression
});
^
此外,我使用了Qt文档和此处作为参考来实现这段代码。问候,
connect
需要一个指向成员函数的指针:
connect(&mainDialog, &DialogClass::accepted, [=](){
; //sth ....
});
我假设DialogClass
是mainDialog
是其实例的类。
问题既与lambda表达式无关,也与foreach
语句(对于在上一版本之前对问题发表评论的人,现在将其删除)或"sth"部分无关
正确的连接形式如下:
connect(&mainDialog,&mainDialog.accepted(),[=](){ // missing '&'
; //sth ....
});
相关文章:
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++ 标记之前预期主表达式'('错误
- 正则表达式中带有卷轴大括号的正则表达式错误
- C++初学者错误:主要表达式错误
- 代数树表达式C++错误:未解析的外部符号"Public:_thiscall AlgebraicTreeExpression::~AlgebraicTreeExpression(void) ..."
- 使用多线程处理对象数组 - 无效使用 void 表达式错误
- 为什么 if constexpr 不会使这个核心常量表达式错误消失?
- 提升正则表达式错误:未初始化的提升::match_results
- C++比较表达式错误
- C++ "主表达式"错误
- C++ 正则表达式错误(未处理的异常)
- 'this'不能用于常量表达式错误 (C++)
- 代码块引发有关for_each的预期主表达式错误
- Boost Regex中的命名子表达式错误
- C++之前的主要表达式错误
- Ubuntu 上的正则表达式错误
- C++正则表达式错误
- 理解常量表达式错误
- 成员函数和预期的主表达式错误
- Xcode中应有表达式错误