我正在尝试处理g ++产生的错误消息,关于特定类中模板成员函数的特化。我收到错误消息
error: specialization of ‘template<class T> std::vector<T>& push::GrammarEnv::stack_accessor()’ in different namespace [-fpermissive]
但是,专门化似乎位于同一名称空间中。实际上,更改命名空间会产生错误,指出未声明模板函数。
可能导致此问题的原因是什么,以及如何判断编译器认为专业化发生的命名空间?错误消息只是给出了原始的,未经特殊化的函数声明的命名空间。