我有一个模板类,我正在尝试基于类的类型名专门研究其方法。该代码的框架如下:

template <typename C> class Instance {
  protected:
    C data;
  public:
    void populateData();
    /* want to change the behavior of populateData() depending on C */
};


我如何实现上述目标?

最佳答案

我认为这是您想要的:

template <typename C> class Instance {
  protected:
    C data;
  public:
    void populateData();
    /* want to change the behavior of populateData() depending on C */
};

template<>
void Instance<int>::populateData() {
    // Do something when C is int
}


您可以针对所需的任何类型专门设置该功能。

08-27 14:20