the article didn't mention the “static initialization order ‘fiasco’"
https://isocpp.org/wiki/faq/ctors#static-init-order
If you have two static objects in two different files then good luck if one depends on the other, as the initialization order is not well defined.
If both files are in the same executable then you can get around that by linking the object files in the desired order - well mostly, kind of.
i have hit this problem at some point...