C++でクラス(仮にAとします)のstaticメンバの初期化は
Aのグローバルなインスタンスのコンストラクタよりも先に呼ばれることは
保証されているんでしょうか?↓こんな感じです。

class A{
  static int m_val;
public:
  A(){/*m_valを参照するようなコンストラクタ。m_valが初期化されている必要あり。*/}
};

int A::m_val = 0;//スタティックメンバの初期化

A a;//グローバルインスタンス

int main()
{
  //処理
}

一応、上のコードでテストしたらうまくいっているようなのですが、本当にいつでもうまく行くか
よく分かりません。
教えてくださいスゴイ人!