Se faccio questo: -do std :: function e std :: bind fanno allocazione di memoria dinamica?
class Thing
{
...
void function (const std::string& message);
};
std::list<std::function<void()>> work;
e in alcuni Stati di "Thing"
work.push_back(std::bind(&Thing::function, this, "Hello"));
Ha sia la chiamata a std :: bind o l'uso di std :: funzione <> causa qualsiasi allocazione di memoria dinamica usando nuovo o altro? O tutto lo spazio allocato è in fase di compilazione? Se lo standard non dice nulla, in Visual Studio 2012, poiché il mio programma dovrà solo essere costruito lì, e per l'efficienza probabilmente dovrò evitare allocazioni di memoria dinamica nel luogo in cui sto pensando di usare questo meccanismo.
"per l'efficienza io probabilmente" non si deve fare ipotesi su efficienza del genere. – slaphappy
L'uso di 'std :: list' causerà un'allocazione di memoria ogni volta che si aggiunge un elemento all'elenco. –
Ahahahahahaha evitando allocazioni dinamiche durante l'utilizzo di std :: list –