模板函数嵌套在模板结构中,g ++特化错误

时间:2014-10-06 12:50:28

标签: c++ templates visual-c++ gcc nested

我正在将Windows代码移植到Linux。所以,我有一个代码

 template <typename PROPERTY,typename T_COORDINATE=am3::model::Coordinates>
  struct Provider
  {
    virtual PROPERTY GetState(am3::model::common::Point<T_COORDINATE>* point,const PROPERTY* const typeTrait)=0;
        virtual PROPERTY GetState(am3::model::common::Point<T_COORDINATE>* point)
        {
            const PROPERTY* const typeTrait_=nullptr;
            return this->GetState(point,typeTrait_);
        }
    template <typename T>
    PROPERTY GetState(am3::model::common::Point<T_COORDINATE>* point);
    template <>
    PROPERTY GetState<PROPERTY>(am3::model::common::Point<T_COORDINATE>* point)
    {
      const PROPERTY* const typeTrait_=nullptr;
      return this->GetState(point,typeTrait_);
    }
  };

和MSVC编译它没有问题,但是 g ++告诉我错误:非命名空间范围'struct am3 :: model :: contract :: Provider'

中的显式特化

我试过重载它,在struct body之后专门化函数等等, (Specialization of templated member function in templated class等等。)但我现在卡住了。 有谁有想法,怎么做?非常感谢提前!

0 个答案:

没有答案