Warum brauchen wir std::invoke
, wenn wir bereits std::function
haben? Was ist der Unterschied zwischen ihnen? Beide verwendeten Callable Objects. Was ist der Punkt, um eine neue Vorlage hinzuzufügen?Was ist der Unterschied zwischen std :: invoke und std :: function?
2
A
Antwort
8
std::invoke
ist eine generische Art und Weise jede aufrufbar zu aktivieren - ein std::function
, ein Zeiger auf Funktion, einen Zeiger auf Member-Funktion, ein Funktionsobjekt usw. Ohne zu wissen, was man Sie es zu tun (und ohne zu haben, Verwenden Sie eine andere Syntax). Es ist vor allem in generischen Programmen (Templates) nützlich.
Eine Standardfunktion auf der anderen Seite ist ein generischer Container für ein aufrufbares "Ding". Gar nicht gleich.
Verwandte Themen
- 1. Was ist der Unterschied zwischen std :: function und std :: mem_fn
- 2. Was ist der Unterschied zwischen std :: cout und std :: wcout?
- 3. Was ist der Unterschied zwischen std :: set und std :: map
- 4. Was ist der Unterschied zwischen std :: partial_sum und std :: inclusive_scan?
- 5. Was ist der Unterschied zwischen "void function()" und "void * function()"?
- 6. Was ist der Unterschied zwischen std :: tie und std :: make_tuple mit std :: ref-Argumenten?
- 7. Unterschied zwischen std :: mutex lock function und std :: lock_guard <std::mutex>?
- 8. Unterschied zwischen std :: Suche und std :: find_first_of
- 9. Unterschied zwischen Std: String und Std :: String
- 10. Unterschied zwischen std :: set und std :: priority_queue
- 11. Was ist der Unterschied zwischen Boost Smartpointern und Std Smartpointern?
- 12. std :: bind std :: function?
- 13. Was ist der Unterschied zwischen std :: string und std :: basic_string? Und warum werden beide benötigt?
- 14. Unterschied zwischen std :: exception und "..."
- 15. Was ist der Unterschied zwischen `$ (window) .load (function() {})` und `$ (function() {})`
- 16. Javascript: Was ist der Unterschied zwischen $ (function() {}); und function() {}
- 17. Unterschied zwischen std :: uninitialized_copy & std :: copy?
- 18. std :: vector von std :: function
- 19. std :: function und std :: bind Verhalten
- 20. Was ist der Unterschied zwischen std :: string :: c_str und std :: string :: data?
- 21. Was ist der Unterschied zwischen std :: to_string, boost :: to_string und boost :: lexical_cast <std::string>?
- 22. Was ist der Grund für den Unterschied im Zerstörungsverhalten zwischen std :: unique_ptr und std :: shared_ptr?
- 23. Understanding std :: function und std :: bind
- 24. Unterschied zwischen std :: result_of und declltype
- 25. Wie std :: bind mit std :: function und std :: map verwenden
- 26. Unterschied zwischen std :: regex_match & std :: regex_search?
- 27. Invoke std :: Funktion in einem std :: for_each
- 28. std :: function -> Funktionszeiger
- 29. G ++, clang ++ und std :: function
- 30. Unterschied zwischen Vektor :: begin() und std :: begin()
Wir haben schon ein Auto. Warum brauchen wir die Farbe Grün? (Kurz gesagt, auf welche Weise sind diese beiden Dinge ** ähnlich ** ???) – Yakk
'std :: invoke' und' std :: function' machen nicht die gleiche Sache überhaupt – David
Watch this [cppcon 2015 Diskussion von Stephan T. Lavavej] (https://www.youtube.com/watch?v=zt7ThwVfap0) – NathanOliver