用于专门化函数参数的模板

时间:2016-09-19 23:03:58

标签: c++ templates

我有一个函数int f (int x, int y)需要多次调用自己,其中一个参数已修复,如

int f(int x, int y) { 
      ...
      int i = f(z,y);
      ...
}

有没有办法通过模板定义一个int g (int x)函数g(z) := f(z,y),以便上面的调用是int i = g(z)

1 个答案:

答案 0 :(得分:3)

你可以在没有任何模板的情况下定义它,

auto f( int x, int y )
    -> int
{
    auto g = [=]( int z ) -> int { return f( z, y ); };
    // ...
    int i = g( z );
}

如果需要,您可以省略-> int的{​​{1}}结果类型规范。

免责声明:编译器未触及的代码。