Erro do compilador C2178
O 'identifier' não pode ser declarado com o especificador 'specifier'
Um especificador mutable
foi usado em uma declaração, mas o especificador não é permitido neste contexto.
O especificador mutable
só pode ser aplicado a nomes de membros de dados de classe e não pode ser aplicado a nomes declarados const
ou static
e também não pode ser aplicado para fazer referência a membros.
Exemplo
O exemplo a seguir mostra como o C2178 pode ocorrer e como corrigi-lo.
// C2178.cpp
// compile with: cl /c /W4 C2178.cpp
class S {
mutable const int i; // C2178
// To fix, declare either const or mutable, not both.
};
mutable int x = 4; // C2178
// To fix, remove mutable keyword