내 코드베이스에서 std :: mutex를 광범위하게 사용했습니다. 그러나 클래스 중 하나는 단순히 인스턴스 변수 목록에 뮤텍스를 추가 할 수 없습니다. 다음을 사용하여 뮤텍스를 인스턴스화합니다. -std :: mutex를 인스턴스화 할 때 컴파일러 오류가 발생했습니다.
std::mutex myMutex;
클래스의 멤버 목록의 private 섹션에 위 문장을 추가했습니다. 내가 뮤텍스를 추가하려고 클래스가 복사됩니다
error C2280: 'std::mutex::mutex(const std::mutex &)' : attempting to reference a deleted function
1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\mutex(113) : see declaration of 'std::mutex::mutex'
-
나는 다음과 같은 오류가 발생합니다.
내가 말했듯이, 나는 내 코드베이스 전체에 뮤텍스를 사용했다. 그래서 다른 곳에서 인스턴스를 생성 할 수있는 동안 뮤텍스를 한 곳에서 인스턴스화 할 수 없다는 것은 매우 이상하다. 여기서 뭐가 잘못 됐는지 말해 줄 수 있니?
'변경 가능'이 누락 되었습니까? –
더 많은 코드가 필요합니다. – James
@ πάνταῥεῖ, 필요합니까? 어쨌든, 나는 그것을 변경할 수 있도록 노력하고 컴파일러는 여전히 동일한 오류를 throw합니다. –