Gibt es ein g ++ -Äquivalent zu Visual Studio __declspec(novtable)
Argument?Gibt es eine g ++ Entsprechung zu Visual Studio __declspec (novtable)?
Grundsätzlich kann das Argument __declspec(novtable)
in einer reinen virtuellen Basisklasse verwendet werden, um die Erstellung einer Vtable für die Basisklasse sowie von Vtable-Initialisierungs-/Deinitialisierungscode im contstructor/destructor zu unterdrücken. Z. B.
class __declspec(novtable) PureVirtualBaseClass
{
public:
PureVirtualBaseClass(){}
virtual ~PureVirtualBaseClass() = 0;
};
Siehe Paul DiLascia's article für weitere Informationen. Siehe auch meine verwandte question.
Nur neugierig: Es scheint mir, dass das Verwerfen der Vtable für PureVirtualBaseClass eine Mikrooptimierung, und in der Regel eine sehr kleine ist. Was ist der Grund dafür? – Managu
Lesen Sie DiLascia's Artikel, er deckt die Gründe dafür ab, dass ich das besser machen will als ich kann. – paxos1977
Auch diese http://msdn.microsoft.com/en-us/library/k13k85ky.aspx heute auf MSDN gefunden, wo sie vorschlagen, dass eine signifikante Reduzierung der Programmgröße mit __declspec (novtable) sein kann. – paxos1977