Próbuję przeprowadzić sekcję tego pliku sieci web ++ ++ https://github.com/zaphoyd/websocketpp/blob/experimental/examples/broadcast_server/broadcast_server.cppjaki jest cel std :: set <VALUE, std :: owner_less <VALUE>>?
W linii 126 znajduje się typedef std::set<connection_hdl,std::owner_less<connection_hdl>> con_list;
. Zastanawiam się, dlaczego nie jest to tylko typedef std::set<connection_hdl> con_list;
.
Przeczytałem How does the Comma Operator work i http://en.cppreference.com/w/cpp/memory/owner_less, ale nie jestem pewien, jaki jest cel.
Co właściwie jest przechowywane w std::set
? Co właściwie robi std::owner_less
? Jaki jest cel stworzenia pojemnika z tą strukturą zamiast przechowywania samych siebie?
Nie ma to nic wspólnego z operatorem przecinków, a strona, do której prowadzi link do 'std :: owner_less', powinna bezpośrednio odpowiedzieć na twoje pytanie. – ildjarn
'std :: set' przyjmuje wiele parametrów szablonu, ale tylko pierwsza jest jawnie wymagana; reszta ma domyślne typy, jeśli ich nie definiujesz. Drugi parametr jest funkcją binarną używaną do sortowania. –
BTW, 'connection_hdl' to' std :: weak_ptr '. –