목록const (2)
Coding Memo
Summaryconst로 선언된 포인터는 포인터 값 뿐만 아니라, 해당 포인터가 가리키는 데이터의 변경도 막는다. 따라서 const 변수와 마찬가지로, const 포인터는 const가 아닌 값으로 캐스팅 할 수 없다. const로 선언된 포인터는 해당 포인터가 가리키는 데이터의 변경을 막는다. 만약, const 포인터가 가리키는 값을 변경할 필요가 있는 경우, `const_cast`를 사용하여 const 속성을 없애주면 된다.다음은 예시 코드이다.using uint = unsigned int;using ubyte = unsigned char;uint t = 0xffffffff;std::cout someInt(4, 0xFF); // it represents max of unsigned int { uby..
에러 Lock을 이용한 Queue를 만들고 컴파일 중에 발생했다. 일단 에러 내용은 이러하다. 상황 단순히 보면 ReadLock이라는 함수의 인자가 일치하지 않아서 나타나는 문제로 보인다... bool TryPeek(T& top) const { ReadLock __r_lock(_lock); // 문제의 코드 if (_queue.empty()) return false; else { top = _queue.top(); return true; } } 문제가 되는 함수이다. 간단히 설명하면, queue에서 peek을 하기위해 readlock을 걸어두고 queue를 읽는다. class ReadLock { public: ReadLock(Lock& lock) : _lock(lock) { _lock.ReadLock()..