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