【发布时间】:2016-09-20 07:08:03
【问题描述】:
我有一个函数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)?
【问题讨论】:
我有一个函数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)?
【问题讨论】:
你可以在没有任何模板的情况下定义它,
auto f( int x, int y )
-> int
{
auto g = [=]( int z ) -> int { return f( z, y ); };
// ...
int i = g( z );
}
如果需要,您可以省略 g 的 -> int 结果类型规范。
免责声明:编译器未触及代码。
【讨论】: