Can the compiler deal with the initialization order of static variables correctly if there is dependency? For example, I have
a.h:
struct A { static double a; };
a.cpp:
#include "a.h"
double A::a = 1;
b.h:
struct B { static double b; };
b.cpp:
#include "b.h"
#include "a.h"
double B::b = A::a;