Wenn ich dies tun: -Do std :: function und std :: bind tun dynamische Speicherzuweisung?
class Thing
{
...
void function (const std::string& message);
};
std::list<std::function<void()>> work;
und in einigen Mitglied der "Sache"
work.push_back(std::bind(&Thing::function, this, "Hello"));
Hat entweder der Aufruf von std :: binden oder die Verwendung von std :: function <> Ursache jede dynamische Speicherzuweisung mit neuen oder anderen? Oder wird der gesamte Speicher zur Kompilierzeit zugewiesen? Wenn der Standard nichts sagt, wie sieht es in Visual Studio 2012 aus, da mein Programm nur darauf aufbauen muss, und aus Effizienzgründen muss ich wahrscheinlich dynamische Speicherzuweisungen an der Stelle vermeiden, an der ich diesen Mechanismus verwenden möchte.
„für Effizienz ich wahrscheinlich“ Sie sollten keine Annahmen über die Effizienz so machen. – slaphappy
Die Verwendung von 'std :: list' verursacht bei jedem Hinzufügen eines Elements zur Liste eine Speicherzuweisung. –
Ahahahahahaha Vermeidung dynamischer Zuordnungen während der Verwendung von Std :: list –