C++ 如何初始化内部类类型的模板类中的静态字段

C++ 如何初始化内部类类型的模板类中的静态字段,c++,templates,static-initialization,C++,Templates,Static Initialization,我有类似的东西 template <class T> class Outer { public: class Inner; static Inner* x; //... class Inner { //... }; }; // Not working template <class T> Outer<T>::Inner* Outer<T>::x = NULL; 模板 类外部{ 公众:

我有类似的东西

template <class T>
class Outer {
    public: class Inner;

    static Inner* x;

    //...

    class Inner {
        //...
    };
};

// Not working
template <class T>
Outer<T>::Inner* Outer<T>::x = NULL;
模板
类外部{
公众:阶级内部;
静态内*x;
//...
班级内部{
//...
};
};
//不起作用
模板
外部::内部*外部::x=NULL;
我得到的错误是:
:16:错误:在“*”标记之前需要构造函数、析构函数或类型转换
template<class T>
class Outer {
public: 

    class Inner;

    static Inner* x;

    //...

    class Inner {
        //...
    };
};

template<class T>
typename Outer<T>::Inner *Outer<T>::x = NULL;
类外部{ 公众: 阶级内部; 静态内*x; //... 班级内部{ //... }; }; 模板 typename外部::内部*外部::x=NULL;
  • 关于
    typename
    class
    ,请参阅

  • 为什么会这样,请参考


  • 可能是一个
    typename