On Mon, 29 Sep 2014, Simon Hausmann wrote: > Yes, with emphasis on "until". Note that we are now talking about the "end of > the application" situation, so our agreement ends right there ;-). We are > talking about the time the QQmlEngine destructor is executed, which from a QML > engine perspective is the "end of the application" point of time. What happens > during that period of time is just as "fishy" as when tearing down a C++ > application: The order of destruction for global objects between several > compilation units is undefined. In C++ you cannot rely on it (I think you can > rely on the order within a unit), so you prepare yourself with levels of > indirection and/or weak references.
I was thinking the same for a long time. Until I discovered (the hard way) a that at least one aspect of the C++ behavior is standardized: the order of destruction is guaranteed to be the reverse of the construction (see [basic.start.term]). I ran into this because of a singleton being encapsuled within a function using a 'static' object. The crashes upon application exit seemed arbitrary at first but turned out to be well-defined :) Which deletion order is the best for QML... maybe it can't be changed anymore. I'd just generally vouch for a *defined* order (even if problematic) rather than an undefined one. Harri. _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development