title: Static variables initialisation order
body: <p>C++ guarantees that variables in a compilation unit (.cpp file) are initialised in order of declaration. For number of compilation units this rule works for each one separately (I mean static variables outside of classes).</p>
  
  <p>But, the order of initialization of variables, is undefined across different compilation units.</p>
  
  <p>Where can I see some explanations about this order for gcc and MSVC (I know that relying on that is a very bad idea - it is just to understand the problems that we may have with legacy code when moving to new GCC major and different OS)?</p>