2017-04-14 4 views
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.

+4

Es Standard baut das 'leave' Objekt. Es ist Teil von [* uniform initialization *] (https://en.wikipedia.org/wiki/C%2B%2B11#Uniform_initialization). –

Antwort

Verwandte Themen