On quinta-feira, 20 de abril de 2017 09:35:15 PDT Igor Mironchik wrote: > Hi, > > >> QObject has virtual destructor... dynamic_cast will work. But it doesn't > >> matter, the problem was in another... > > > > If your class has virtual functions or derives from such base class, and > > have inline (or default) virtual destructor,its v-table will be emitted > > in each translation unit. This is undesirable and can lead to subtle > > problems. See e.g. > > > > http://llvm.org/docs/CodingStandards.html#provide-a-virtual-method-anchor-> > > > for-classes-in-headers > There said that it can lead just to increasing objects size in linking > time. What problems may appear?
Emitting in multiple places is not usually a problem. The problem happens when DLL/shared library boundaries appear. Depending on your compilation flags, the symbols will not be merged at runtime and ODR violations will occur. I've said this before. A plugin system consists of: a) zero or more plugins b) zero or more applications c) exactly one DLL/shared library -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest