我有一个函数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)
?
答案 0 :(得分:3)
你可以在没有任何模板的情况下定义它,
auto f( int x, int y )
-> int
{
auto g = [=]( int z ) -> int { return f( z, y ); };
// ...
int i = g( z );
}
如果需要,您可以省略-> int
的{{1}}结果类型规范。
免责声明:编译器未触及的代码。