C++ Mutable

Da Andreabont's Wiki.

In C++ la parola chiave mutable

Oggetti

Negli oggetti, una variabile dichiarata come mutable indica che può essere modificata anche se l'oggetto stesso è dichiarato come const.

class miaClasse {
public:
    mutable int miavariabile; 
};

int main( )
{
    const miaClasse mioOggetto;
    mioOggetto.miavariabile++;
}

Lambda

Nelle lambda indica che una variabile catturata per copia è modificabile dal corpo della funzione, la modifica non si propaga all'esterno.

int i = 10;

auto lambda = [=] (int j) mutable {
   i += j;
};