私はstd :: unique_ptrがオブジェクトを破壊するためにQObject :: deleteLaterを呼びたいと思います。std :: unique_ptrとQObject :: deleteLater
私はそれを行う方法を理解できません。
私はコンパイルを試みませんでした。
など。
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);
しかし、私はそれを使用することはあまりにも醜いです。良い方法がありますか? docとして
あなたは&QObjectを:: deleteLater前に削除しようとしています。テンプレート引数がポインタまたは関数自体を必要とするかどうかはわかりません。 – Vality
私はすべての可能な変種を試しました。 –
その場合、私はオブジェクトを受け取り、それに対してdeletelaterメソッドを呼び出すdeletelaterの周りに簡単なテンプレート関数ラッパーを書くでしょう。 – Vality