Order of initialization of globals across TU
suggest changeWhereas inside a Translation Unit, order of initialization of global variables is specified, order of initialization across Translation Units is unspecified.
So program with following files
- foo.cpp
#include <iostream>
int dummyFoo = ((std::cout << "foo"), 0);
- bar.cpp
#include <iostream>
int dummyBar = ((std::cout << "bar"), 0);
- main.cpp
int main() {}
might produce as output:
foobar
or
barfoo
That may lead to Static Initialization Order Fiasco.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents