1
Der Codeausschnitt unten ist das, was ich nicht verstehen kann:Warum können wir leere Klammern verwenden, um die std :: function <void(Node*)> zu initialisieren?
extern void DFS(const Graph& g, std::function<void(Node*)> enter,
std::function<void(Node*)> leave);
DFS(*graph, visit, {}); // ***this is the call site***
So wird der Code oben verwendet {}
die std::function<void(Node*)> leave
, zu initialisieren , wie es zu verstehen?
Vielen Dank, alle Informationen werden geschätzt.
Es Standard baut das 'leave' Objekt. Es ist Teil von [* uniform initialization *] (https://en.wikipedia.org/wiki/C%2B%2B11#Uniform_initialization). –