1) Is it true that static data members of classes always get initialized before main() called?
2) Is it true that "static initialization order fiasco" can happen if static data member of class initialization code uses global static variable of other translation unit?
Where can I read more about it? I couldn't find answer in 2003 standard of C++.
Thanks a lot.
1) Is it true that static data members of classes always get initialized before main() called?
yes they would always be initialized before program starts executing.
2) Is it true that "static initialization order fiasco" can happen if static data member of class initialization code uses global static variable of other translation unit?
Yes, along with this it also happens for every other thing which is initialized before main()
execution.
Yes to both answers.
see https://isocpp.org/wiki/faq/ctors#static-init-order for a good description of it.