有没有办法告诉 gcc 它正在编译的抽象类不需要虚拟析构函数(就像 COM 对象从来没有的那样)?例如 nsISupports 总是提示缺少虚拟析构函数。关闭警告无济于事,因为我可能有非 COM 类的类,而我想要此警告。
所以 __attribute__((com_interface)) 被弃用并且只改变了 vtable 布局。是否有另一个 __attribute__ 可以告诉编译器我不想收到有关此类缺少析构函数的警告?
最佳答案
缺少虚拟 dtor 警告是有原因的 - 主要是因为它是调试的噩梦,尤其是在大型复杂的代码库中
您可能有一个非常具体的原因这样做,但问问自己,如果一个类被重构以致于它的用法在以后发生变化,会发生什么?
关于c++ - 类 COM 接口(interface)警告非虚拟析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1021430/