【问题标题】:What does this strange C++ syntax do? [duplicate]这种奇怪的 C++ 语法有什么作用? [复制]
【发布时间】:2021-01-12 08:01:43
【问题描述】:

据我了解,有 3 个参数被传递给 m.def()。我不明白传递的第二个参数的语法,即 [] (Observable...){} 这是什么意思?

m.def(
  "DumpHistogramFile",
  [](Observable<NetBase>::Observer* ob) {
    HistogramNetObserver* hist_ob =
        dynamic_cast_if_rtti<HistogramNetObserver*>(ob);
    hist_ob->DumpHistogramFile();
  },
  pybind11::arg("ob"));

我在pytorch source code 中找到了这个语法

【问题讨论】:

标签: c++ pytorch cc


【解决方案1】:

第二个参数是一个函数,它接受一个指向Observer 的指针并且不返回任何内容。执行时,它调用DumpHistogramFile。这称为lambda expression

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 2021-11-13
    相关资源
    最近更新 更多