我有以下代码:
auto x_is_valid = [](const MyX &x) -> bool {
return x.source != MyXValue::ABC;
};
auto objects = var_.var_in_box(*a, b, c, x_is_valid);
我想知道:
x_is_valid
是如何计算的?我该如何正确阅读?
谢谢!
答案 0 :(得分:2)
数学类比可能会有所帮助。想象一个函数Set myFolder = …
。
f(x) = x^2
是如何计算的?
就在这里:对于任何f
,计算公式为x
。
它将输入参数放在哪里?
来自呼叫者。
上面的“答案”毫无意义,但是如果您从数学意义上在函数的上下文中理解它们,那么它们可能会有所帮助。
答案 1 :(得分:0)
如果var_.var_in_box
期望将bool
作为最后一个参数,则调用
auto objects = var_.var_in_box(*a, b, c, x_is_valid);
应该会导致编译错误。
如果上面的行编译没有错误,则上面的最后一个参数类型是可调用对象,而不是bool
。大概,该函数使用传入的可调用对象进行函数调用。无法从发布的代码中确定在类的var_in_box
成员函数的实现中如何调用可调用对象。