小编Jac*_*b B的帖子

在C++中专门化它时调用非特定版本的函数?

说我有一个模板类:

template <typename T>
class foo {
  void do_someting(T obj) {
    // do something generic...
  }
};
Run Code Online (Sandbox Code Playgroud)

我想专门化do_something,但在其中我想调用"普通"do_something函数:

template<>
void foo<MyObj>::do_something(MyObj obj) {
  // do something specific...
  // and ALSO do something generic!
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在我的专用函数中引用do_something的正常版本?或者我只需要复制代码?

(我知道我可以用这样的方式重构foo,我不会遇到这个问题,但实际上我无法真正修改"真正的"foo,因为它是重度共享的代码.)

c++ templates template-specialization

11
推荐指数
1
解决办法
877
查看次数

标签 统计

c++ ×1

template-specialization ×1

templates ×1