Mam prostą klasę RAII, aby upewnić się, że jakiś uchwyt jest odpowiednio usuwany. Teraz chciałbym stwierdzić, że nikt nie doda przypadkowo żadnych wirtualnych metod. Sposób, w jaki to widzę, muszę stwierdzić, że klasa nie ma wskaźnika vtbl.Jak stwierdzić, że dana klasa nie ma żadnych wskaźników vtbl w swoim układzie?
Jak mogę to zrobić? Czy można to potwierdzić w czasie kompilacji?
EDIT
będę zadowalać kompilatorów stacjonarnych. O ile mi wiadomo, nie ma kompilatorów C++, które nie używają vtbl do implementacji polimorfizmu.
Teoretycznie nie można tego zrobić w przenośny sposób. –
Być może zainteresuje Cię klasa _sealed_: http://stackoverflow.com/q/4712992/96780 –
vtbl jest szczegółem implementacji. Może istnieć kompilator, który nie używa tabel wywołań do implementacji funkcji wirtualnych. Czy chcesz ograniczyć się do jednego konkretnego kompilatora? – filmor