C++ 添加和不添加';typename';模板化的静态成员初始化会出现错误

C++ 添加和不添加';typename';模板化的静态成员初始化会出现错误,c++,templates,static,typename,C++,Templates,Static,Typename,初始化模板化静态成员时,添加和不添加“typename”都会出现错误。我不确定我错在哪里。下面是一个完整的最小示例: myclass.h template <typename T> class MyClass{ public: static T G; }; 你能帮我解决这个问题吗?没什么好说的,只是: template<typename T> T MyClass<T>::G = 25; 模板T MyClass::G=25;

初始化模板化静态成员时,添加和不添加“typename”都会出现错误。我不确定我错在哪里。下面是一个完整的最小示例:

myclass.h

template <typename T> class MyClass{
    public:    
        static T G;
};

你能帮我解决这个问题吗?

没什么好说的,只是:

template<typename T> T MyClass<T>::G = 25;
模板T MyClass::G=25;
你可以看到它在这里工作

error: need 'typename' before 'MyClass<T>::G' because 'MyClass<T>' is a dependent scope
#include "myclass.h" 

template<typename T> typename MyClass<T>::G = 25;
error: expected unqualified-id before '=' token
template<typename T> T MyClass<T>::G = 25;