这种奇怪的 C++ 语法有啥作用? [复制]
Posted
技术标签:
【中文标题】这种奇怪的 C++ 语法有啥作用? [复制]【英文标题】: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 中找到了这个语法
【问题讨论】:
***.com/questions/7627098/… 【参考方案1】:第二个参数是一个函数,它接受一个指向Observer
的指针并且不返回任何内容。执行时,它调用DumpHistogramFile
。这称为lambda expression。
【讨论】:
以上是关于这种奇怪的 C++ 语法有啥作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章