Это хорошая практика? Или я должен просто заменить блок кода между {
и }
функцией? Он может быть повторно использован (я признаю), но моя единственная мотивация для этого заключается в освобождении colsum
, так как это огромный и не требуется, чтобы я мог освободить выделенную память.Освобождение выделенной памяти
vector<double> C;
{
vector<double> colsum;
A.col_sum(colsum);
C = At*colsum;
}
doSomething(C);
Как я понимаю, переменная не гарантирует, что ее деконструктор будет вызван до тех пор, пока функция не закончится (даже если она выходит за рамки), поэтому это может даже не делать то, что вы намереваетесь сделать. –
Для тех, кто считает, что это не сработает, см. Http://stackoverflow.com/questions/500006/what-is-the-purpose-of-anonymous-blocks-in-c-style-languages – bshields
Кому нужны функции? ?? –