便乗質問なんだけど

const std::string& GeRefOfFuncStaticString(int n)
{
  static std::string str = boost::lexical_cast<std::string>(n);
  return str;
}

これ static のところ、いつ初期化されるんだ? 今までプログラム
起動時(main以前)だと思ってたんだが、nが関数の呼び出し時に
決まるじゃん。

内部で
if(関数の初回呼び出しなら){
  str = boost::lexical_cast<std::string>(n);
}

みたいなコードにコンパイルされるわけ?
>>484の挙動見ているとそう見えるんだが…