类的静态成员会被隐式初始化?该怎么解决

类的静态成员会被隐式初始化?
本帖最后由 agfav12 于 2015-11-01 21:18:12 编辑
c++primer这么说:
class StrVec{
    static allocator<string> alloc;
    string*elements;
public:
    StrVec()://allovator成员进行默认初始化
        elements(nullptr) { }
........
}

默认构造函数(隐式地)默认初始化alloc并(显示地)将指针初始化为nullptr
然而这本书之前就说过了:
类的静态成员不是由类的构造函数初始化的

我想问这个前后矛盾咋回事?(隐式地)默认初始化alloc是怎么个初始化法?
------解决思路----------------------
和全局变量的初始化时机一样
------解决思路----------------------
类的静态变量不是必须由构造函数初始化的,比构造函数要早。
------解决思路----------------------
c++14 draft n4296

9.4.2 static data members
6 Static data members are initialized and destroyed exactly like non-local variables (3.6.2, 3.6.3).

静态成员初始化和构造关系不大。