小编Zhi*_*ang的帖子

当两个模板参数属于同一类型时,如何执行部分专业化?

两个模板参数为同一类型如何部分专业化。

如何使用第二个函数编写此代码。

#include <utility>
#include <iostream>

template <typename A, typename B>
void Translate(A&& a,B* b){
  // make some translate from a to b
  // b->bvalue=a.av;
  std::cout<<"normal function";
}
//if a and b are same type,
template <typename A>
void Translate(A&& a, A* b) {
  *b = std::forward<A>(a);
  std::cout<<"forward function";
}

int main(int argc, char** argv) {
  int in=0,out=0;
  Translate(in,&out);
  return 0;
}

Run Code Online (Sandbox Code Playgroud)

期望输出“转发功能”。

c++ templates partial-specialization specialization overload-resolution

3
推荐指数
1
解决办法
53
查看次数