한 객체에 대해 여러 RefCell이 있을 수 있어서 그런거 아닐까
&mut가 동시에 두개이상 있으면 소유권 규칙상 UB임
컴파일 에러가 아니라 UB임?
RefCell에서 런타임체크 빼면 UB임 컴파일러 대신 체크한다고 저런 식으로 쓰는건데 안하면 그냥 에러지
따로 찾아봤는데 single thread여도 unsafe한 경우가있네https://manishearth.github.io/blog/2015/05/17/the-problem-with-shared-mutability/이블로그가 설명 잘 해놓음
Iterator invalidation 실제로 당해보면 멘탈나간다 왠만한 언어는 컴파일 타임에 확인을 안 해줘서 for문 쓸때 무조건 안전한지 찾아보고 쓴다
한 객체에 대해 여러 RefCell이 있을 수 있어서 그런거 아닐까
&mut가 동시에 두개이상 있으면 소유권 규칙상 UB임
컴파일 에러가 아니라 UB임?
RefCell에서 런타임체크 빼면 UB임 컴파일러 대신 체크한다고 저런 식으로 쓰는건데 안하면 그냥 에러지
따로 찾아봤는데 single thread여도 unsafe한 경우가있네
https://manishearth.github.io/blog/2015/05/17/the-problem-with-shared-mutability/
이
블로그가 설명 잘 해놓음
Iterator invalidation 실제로 당해보면 멘탈나간다 왠만한 언어는 컴파일 타임에 확인을 안 해줘서 for문 쓸때 무조건 안전한지 찾아보고 쓴다