小编use*_*687的帖子

优雅的模板重载解决方案?

在c ++ 11中我有函数

double f(double x1);
double f(double x1, double x2);
double f(double x1, double x2, double x3);
double h(double x);
Run Code Online (Sandbox Code Playgroud)

我也有功能

double g(std::vector<double> y, double x1);
double g(std::vector<double> y, double x1, double x2);
double g(std::vector<double> y, double x1, double x2, double x3);
Run Code Online (Sandbox Code Playgroud)

g的实现是这样的

double g(std::vector<double> y, double x1, double x2, double x3)
{
  double ans = 0.0;
  for(g : y)
  {
    ans = h(g) * f(x1, x2, x3);
  }

  return ans;
}
Run Code Online (Sandbox Code Playgroud)

是否有一种优雅(模板化)的方式来做这个而不是用重载参数写g 3次?

c++ templates overloading c++11

2
推荐指数
1
解决办法
130
查看次数

标签 统计

c++ ×1

c++11 ×1

overloading ×1

templates ×1