C++11 에 mutable keyword가 추가 되었다.
아래의 간단한 코드를 보도록 하자.
너무 간단하다.
#include <iostream>
class Entity
{
private:
int A = 10;
mutable int B = 20;
int C = 30;
public:
Entity () {}
virtual ~Entity () {}
void Function() const
{
//A = 20;
//컴파일 에러 함수 선언에 const가 붙었다.
B = 30;
//Okay.
//B에는 mutable 키워드가 붙었음으로 const가 붙은 함수에서도 B값에 대한 수정이 허용된다.
}
};
mutable은 멤버 변수 혹은 람다에서 사용이 가능하다.
int main()
{
mutable int A = 10;
//무의미하다.
//멤버 변수 혹은 람다에서 사용이 가능하다.
}