我試圖創建一個宏來安裝和刪除從lambda構造的Qt事件過濾器。在這種情況下,this
被稱爲QObject
,因此具有成員destroyed
。 filter
只是一些QObject
衍生的事件過濾器。但是我有一個行一個問題:獲取帶有decltype的函數引用(this)
connect(this, &decltype(this)::destroyed, [filter]()
{
qApp->removeEventFilter(filter);
filter->deleteLater();
});
這給(MSVC2013)錯誤:
left of '::' must be a class, struct or union
我只是得到了語法錯誤,或者我不能這樣做呢?
'this'是一個指針。 – molbdnilo
將''using''語句(定義''decltype(* this)''作爲別名)放在之前並使用別名代替 – cmdLP