Em seg 23 jun 2014, às 12:08:05, Till Oliver Knoll escreveu: > Am 23.06.2014 um 03:11 schrieb Thiago Macieira <[email protected]>: > > ... In QObject and qobject_cast's case, it's the > > meta object (the output of moc); for RTTI and dynamic cast, it's the > > typeinfo. Each must exist in a single library. > > Not sure whether I fully understand your "[runtime info] must exist in a > single library" requirement here, but I always thought that the advantage > of using the "Qt Meta System" over the RTTI was that the former would work > "across library boundaries", whereas the later not (guaranteed, since > compiler-specific).
In all compilers that Qt supports, the requirement is the same: there is one structure that must be exported from a single library. For QObject, it's the meta object; for RTTI, it's the typeinfo. The difference is *how* you accomplish that. It's a lot easier to get QObject right because of the requirement to run moc. But it's also possible to make a silly mistake and have the same problem of it not working across library boundaries. That silly mistake is naming the .h file where the base class is declared in the HEADERS of plugin or the application -- it needs to be *only* in the library. But once you've got it working with QObject, RTTI will also work. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Interest mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/interest
