2016-09-26 10 views
0

Я только что наткнулся на кусок, который я не смог правильно найти в Google. В основном это выглядит как foo([](){bar();}). Вот что я на самом деле найдено:C++: Что делает этот код? Foo ([]() {бар();});

ArduinoOTA.onStart([]() { 
    Serial.println("Start"); 
}); 

Может кто-нибудь объяснить этот синтаксис для меня или, по крайней мере, сказать мне, что я смотрю на здесь?

+0

Спасибо, что отметили это. Я действительно ненавижу себя за то, что раньше не знал о лямбда-функциях. Они кажутся смехотворно полезными. – Forivin

ответ

1

Вы ищете lambda expressions.

В этом случае, похоже, регистрируется действие, которое необходимо выполнить при запуске.

1

Он просто вызывает некоторую функцию foo с функцией лямбда []() { bar(); } в качестве аргумента.