11
是否有一個相當於Visual Studio的__declspec(novtable)
參數的g ++?是否有一個g ++等效於Visual Studio的__declspec(novtable)?
基本上,在純虛擬基類中,__declspec(novtable)
參數可用於分別禁止在基類中創建vtable以及在contstructor/destructor中創建vtable初始化/取消初始化代碼。例如,
class __declspec(novtable) PureVirtualBaseClass
{
public:
PureVirtualBaseClass(){}
virtual ~PureVirtualBaseClass() = 0;
};
有關更多信息,請參見Paul DiLascia's article。另請參閱我的相關question。
只是好奇:在我看來,放棄PureVirtualBaseClass的虛擬表是一種微型優化,通常是一個非常小的。想要這樣做的原因是什麼? – Managu 2009-11-24 05:19:04
閱讀DiLascia的文章,他涵蓋了想要做得更好的原因。 – paxos1977 2009-11-24 14:18:59
另外,今天在MSDN上發現了這個http://msdn.microsoft.com/en-us/library/k13k85ky.aspx,他們建議使用__declspec(novtable)可以顯着減少程序大小。 – paxos1977 2009-11-26 02:35:35