On quarta-feira, 2 de março de 2016 19:24:15 PST Milian Wolff wrote: > On Mittwoch, 2. März 2016 09:47:33 CET Thiago Macieira wrote: > > On quarta-feira, 2 de março de 2016 16:48:08 PST Milian Wolff wrote: > > > A simple solution would then be a macro for an explicit instantiation, > > > similar to what we already do with > > > Q_DECLARE_LOGGING_CATEGORY/Q_LOGGING_CATEGORY. Only there then would moc > > > generate the static meta object. That should work, no? > > > > That is the case I mentioned before: the template class's author needs to > > know each and every possible instantiation ahead of time and instantiate > > them. Unlikely to be acceptable use-case. > > For the use-case I have in mind, i.e. templated models, it would just fine. > Note that I did not propose to have the macro for the instantiation where > the template gets defined. Rather, I imagine users of the template to do > that on demand.
That's not the case above. I was talking about pre-populating every possible instantiation. If the users do it on demand, then we have the runtime merging problem on Windows. Pick your poison. > It's like QMetaType, no? We can, optionally, supply a set of instantiations > for common types in the library. All others will be done by the user on- > demand. If he then triggers an ODR violation, he can solve it by sharing the > common code. No, it isn't. QMetaType doesn't compare pointers. QMetaType assumes that ODR wasn't violated. The meta objects will violate ODR. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
