Речь идет об исходном коде системы статистического машинного перевода Moses. . В классе Factor
проекта Mosesdecoder есть такое странное использование ключевого слова mutable
:
class Factor {
__SOME_OTHER_CODE__
// FactorCollection writes here.
// This is mutable so the pointer can be changed to pool-backed memory.
mutable StringPiece m_string
size_t m_id;
__SOME_OTHER_CODE__
}
Полный файл Factor.h
находится здесь. Я знаю, что mutable
используется, когда вы хотите изменить вариант члена в константной функции-члене или когда вы хотите изменить некоторую переменную вне области видимости в лямбда-выражении. Однако я не понимаю, что делает mutable
в этом коде.
Я ценю любой намек. Спасибо.