C++:Lambda 表达式的输入

c++: input of a lambda expression

本文关键字:输入 表达式 Lambda C++      更新时间:2023-10-16

我有以下代码:

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
  • 它的输入参数从哪里获取?

如何正确阅读本文?

谢谢!

数学类比可能会有所帮助。想象一个函数f(x) = x^2.

如何计算f

它就在那里:对于任何x,计算的公式都是f(x) = x^2

它的输入参数从哪里获取?

从呼叫者。

上面的"答案"毫无意义,但如果你在数学意义上的函数上下文中理解它们,它们可能会有所帮助。

如果var_.var_in_box ,则期望将bool作为最后一个参数,则调用

auto objects = var_.var_in_box(*a, b, c, x_is_valid);

应导致编译错误。

如果上面的行编译没有任何错误,那么上面的最后一个参数类型是一个可调用的对象,而不是一个bool。据推测,该函数使用传入的可调用对象进行函数调用。无法从发布的代码中确定在类的成员函数的实现中如何调用可调用对象var_in_box