我想我的std ::的unique_ptr調用的QObject :: deleteLater進行破壞的對象。的std ::的unique_ptr和的QObject :: deleteLater
我無法弄清楚如何做到這一點。
沒有我試過編譯。
E.g.
std::unique_ptr<SomeQObject, decltype(&QObject::deleteLater)> var(
pointer, &QObject::deleteLater);
請幫助...
加#1。
OK,我發現這工作:
std::unique_ptr<QObject, decltype(std::mem_fun(&QObject::deleteLater))> var(
pointer,
std::mem_fun(&QObject::deleteLater));
取而代之的是一個:
std::unique_ptr<QObject, decltype(&QObject::deleteLater)> var(
pointer,
QObject::deleteLater);
但它是太醜了,我使用它。有沒有好的方法?
你有沒有試圖消除與之前的QObject :: deleteLater。我不確定模板參數是否需要指針或函數本身。 – Vality
我試過所有可能的變體。 –
在這種情況下,我會寫一個關於deletelater的簡單模板函數包裝器,它接受一個對象並調用deletelater方法。 – Vality