Funktionsobjekt
-
hallo,
kann mir mal jemand erklären, wie folgender Aufruf abgehandelt wird?
struct Delete { template<typename T> void operator()(T* p) { delete p; } }; std::for_each(entries.begin(), entries.end(), Delete());Wieso kann man denn jetzt den Operator der Klasse Delete aufrufen, ohne einen Parameter zu übergeben?
-
Delete() erzeugt ein (default-konstruiertes) temporäres Objekt, das ist kein Aufruf des Überladenen Operators ().
Einfach zu erkennen: Delete ist der Name eines Typen, nicht der eines Objektes.