2016-09-19 93 views
1

我有一个函数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)

回答

3

你可以只定义没有任何模板,

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

可以省略为g-> int结果类型规格,如果你想要的。

声明:编译器手中未触及的代码。