【发布时间】:2017-07-03 19:28:21
【问题描述】:
我正在尝试创建一个宏来安装和删除从 lambda 构造的 Qt 事件过滤器。在这种情况下,this 被称为QObject,因此有一个成员destroyed。 filter 只是一些QObject 派生的事件过滤器。但是我的线路有问题:
connect(this, &decltype(this)::destroyed, [filter]()
{
qApp->removeEventFilter(filter);
filter->deleteLater();
});
给出 (MSVC2013) 错误:
'::' 的左边必须是类、结构或联合
我只是语法错误,还是不能这样做?
【问题讨论】:
-
this是一个指针。 -
在前面加上
using语句(定义decltype(*this)为别名),并改用别名
标签: c++ qt c++11 visual-studio-2013