已经专门化的类的成员函数专业化

时间:2017-07-14 13:57:33

标签: c++ templates template-specialization

我正在努力解决以下问题。基本上我有一个模板结构和一个特化。

template<class T>
struct A
  {
  };


// Specialization of A for int
template<>
struct A<int>
  {
    template<class B>
    void f(B b)
      {
      // Do stuff
      }
  };

是否可以专门化A :: f?

类似的东西:

template<>
template<>
void A<int>::f<double>(double b)
  {
  // do stuff
  }

1 个答案:

答案 0 :(得分:2)

是的,但您只需要一个template<>A<int>已完全专业化,成员函数仅在专业化A<int>中定义,而不是在主模板中定义< / p>

template<>
void A<int>::f<double>(double b)
{
    std::cout << "specialization" << std::endl;
}

Live example