问问题
1403 次
1 回答
1
该bind
函数返回一个双参数仿函数,因为您将构造函数的第三个和第四个参数绑定到占位符值_1
和_2
. 但是,您将结果存储在零参数function
对象中。
我找到了六年前的参考资料,解释说绑定函数时不能省略参数,即使它们是用默认值声明的。
我认为你有三个选择:
int
在调用中提供实际值bind
而不是占位符。- 更改 of 的声明
f
以指示它存储一个双参数函数,然后在调用它时始终提供这两个值。 - 将最后两个参数绑定到variables。请参阅Boost.Lambda 文档中的延迟常量和变量。然后,您可以将这些变量设置为与构造函数声明的默认值相同的默认值。要使用默认值,什么也不做。要指定非默认值,请在调用之前为这些变量赋值
f
。
最后一个选项可能只会使您的代码更难阅读而没有太多好处,因此请改用前两个选项之一。
于 2011-03-16T23:10:04.550 回答