向模板化静态成员初始化添加和不添加'typename'都会出错

Both adding and not adding 'typename' to templated static member initialization gives errors

本文关键字:添加 出错 typename 静态成员 初始化      更新时间:2023-10-16

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

我的班级

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

案例1:我的类.cpp

#include "myclass.h" 
template<typename T> MyClass<T>::G = 25;

产出1:

error: need 'typename' before 'MyClass<T>::G' because 'MyClass<T>' is a dependent scope

案例2:我的类.cpp

#include "myclass.h" 
template<typename T> typename MyClass<T>::G = 25;

产出2:

error: expected unqualified-id before '=' token

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

没什么

好说的,只是:

template<typename T> T MyClass<T>::G = 25;

你可以看到它在科里鲁上工作