gccにコンパイルする抽象クラスには、COMオブジェクトにはないような仮想デストラクタは必要ないと伝える方法はありますか?たとえば、nsISupportsは欠落している仮想デストラクタについて常に不平を言います。私がこの警告を出したいと思うCOM以外のクラスを持っているかもしれないので、警告をオフにすることは役に立たないでしょう。COMのようなインタフェースは、非仮想デストラクタについて警告します
So __attribute __((com_interface))は廃止され、vtableレイアウトのみが変更されました。コンパイラに、このクラスの消失したデストラクタについて警告したくないということを伝えることができる別の__attribute__がありますか?
ありがとうございました。しかし、COMのように私はxpcom、windows comまたは類似のものを意味しました。ウィンドウのIUnknownには仮想デストラクタはありません。 mozillaのnsISupportsには仮想デストラクタはありません。これらのクラスとその派生クラスは、IUnknown/nsISupports :: release()関数で常に削除されます。 deleteでそれらを削除することは望ましくありません。だから、COMインタフェースに仮想デストラクタはないが、他のクラスにはその理由があるのだろうか? – gri