LINUX.ORG.RU

История изменений

Исправление dzidzitop, (текущая версия) :

ерунду говоришь. Судя по return value возвращается тот же объект. Поэтому очень вероятно что внутри const_cast (если нет чего-то, о чём не видно из заголовка функции). Поэтому автор такого API, мягко коворя, имеет конечный радиус кривизны рук.

mutable - applies to non-static class members of non-reference non-const type and specifies that the member does not affect the externally visible state of the class (as often used for mutexes, memo caches, lazy evaluation, and access instrumentation). mutable members of const class instances are modifiable. (Note: the C++ language grammar treats mutable as a storage-class-specifier, but it does not affect storage class.)

Насколько я могу судить, externally visible state of the class меняется. Но лишь бы компилилось и работало без UB, конечно.

Исходная версия dzidzitop, :

ерунду говоришь. Судя по return value возвращается тот же объект. Поэтому очень вероятно что внутри const_cast (если нет чего-то, о чём не видно из заголовка функции). Поэтому автор такого API, мягко коворя, имеет конечный радиус кривизны рук.