【问题标题】:What does lambda::_1 mean?lambda::_1 是什么意思?
【发布时间】:2017-01-07 00:05:54
【问题描述】:

我有以下我想要理解的源代码。

lambda::bind(&internal::on_accept, lambda::_1)

lambda::_1 是什么意思?

【问题讨论】:

  • _1 作为变量名有效。
  • This,可能。
  • 嗯,你在哪里看到这个代码?你能查一下lambda是什么吗?有文档吗?你告诉我们。
  • @mister:标准 C++(包括 C++11)中没有这样的东西。如果没有相关上下文,这不是一个有效的 C++ 问题。
  • 拜托,这很可能是指 boost 的 lambda。

标签: c++ c++11 boost


【解决方案1】:

lambda 要么是一个类,要么是一个命名空间。 _1 是该类/命名空间的成员。它可以是变量,也可以是函数。

标准库中没有名为lambda 的类。

您可以通过查看其定义和文档来了解有关 lambda 及其成员的更多信息。

【讨论】:

    【解决方案2】:

    这里缺少上下文,但根据bind 的经验,我假设_1 用于引用调用函数时将使用的第一个参数。调用func("abc") 将导致调用on_accept("abc")。 Bind 可用于重新映射参数和附加参数,例如lambda::bind(&internal::on_accept, lambda::_1, true, lambda::_2) 会生成一个函数,当使用foo(1, 2) 调用时会调用on_accept(1, true, 2)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-10
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      相关资源
      最近更新 更多