比如我有一个函数:
void get(int a, char b, int c, float d, int e, char f)
我只想给函数 d、e 和 f。我如何将它们作为参数传递。
只有他们三个。
最佳答案
如下所示写一个重载:
auto get(float d, int e, char f) -> std::function<void(int, char, int)>
{
return [=](int a, char b, int c) { get(a,b,c, d,e,f); };
}
也就是说,此重载接受 d
、e
、f
仅 并返回一个可调用实体,该实体接受其余 参数 — 这个可调用实体最终会调用您的 get()
函数。
您可以将其用作:
auto partial_get = get(d,e,f); //pass d, e, f
//code
partial_get(a,b,c); //invoke partial_get() passing rest of the arguments!
这里 partial_get
是一个可调用的实体,您可以随时通过其余参数调用它 — partial_get
最终调用您的 get()
函数传递所有必需的参数。
关于c++ - 如何一次给一个函数一个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497414/