我在不属于类的头文件中有以下代码:
template<typename Foo> static const Compl<Foo,bar> *foobar (const FBTYPE &x);
template<> static const Compl<typea,bar> *foobar<typea>(const FBTYPE &x) {
return x.funcA();
}
template<> static const Compl<typeb,bar> *foobar<typeb>(const FBTYPE &x) {
return x.funcB();
}
代码使用较旧的GCC版本编译得很好,但在较新的版本中,我收到此错误消息:
rsvt.h(672): error #3503: a storage class is not allowed in an explicit specialization
template<> static const Compl<typea,bar> *foobar<typea>(const FBTYPE &x) {
^
知道为什么它适用于较旧版本的GCC而不适用于较新版本的GCC?另外,我怎样才能让它与GCC 5一起使用?