mutable
読み:ミュータブル
外語:mutable

 C++の予約語の一つ。
目次

概要
 mutableは英語で、変わりやすい、移り気の、気まぐれな、という意味の形容詞である。

特徴

C/C++
 メンバー変数を修飾する。
 constインスタンスであっても、内容が変化して良いメンバー変数に付ける。
 また、constなメンバー関数においても、mutableなメンバーは変更してよい。

C++11
 ラムダ式を修飾して、コピーキャプチャした変数の書き換えを許可する。
 ラムダ式は、記述したその場に無名関数(匿名関数)オブジェクトを生成する。
 クロージャー変数の定義も可能だが、それは通常constであり、変数の書き換えは出来ない。
 int n = 123;
 [n](int x) -> int { return x * ++n; } // ←エラー
 この変数をどうしてもラムダ式内で書き換える必要がある場合、ラムダ式をmutable修飾する。
 [n](int x) mutable -> int { return x * ++n; } // ←OK

再検索