【发布时间】:2012-05-29 22:41:17
【问题描述】:
如何绑定到采用默认参数的函数,而不指定默认参数,然后在没有任何参数的情况下调用它?
void foo(int a, int b = 23) {
std::cout << a << " " << b << std::endl;
}
int main() {
auto f = std::bind(foo, 23, 34); // works
f();
auto g = std::bind(foo, 23); // doesn't work
g();
using std::placeholders::_1;
auto h = std::bind(foo, 23, _1); // doesn't work either
h();
}
【问题讨论】:
-
定义“不起作用”。如果您为变量指定不同的名称,则代码将编译。
-
你为什么一直重新分配给 f?
-
@R.MartinhoFernandes 是的,抱歉,示例不完整。更新代码
-
@111111 这更像是一种象征意义。更新代码
标签: c++ c++11 bind default-arguments