developer tip

이 코드가 Visual Studio 2015에서 충돌하는 이유는 무엇입니까?

optionbox 2020. 12. 2. 08:31
반응형

이 코드가 Visual Studio 2015에서 충돌하는 이유는 무엇입니까?


어떤 이유로 Visual Studio의 C # 파일에 이것을 입력하는 것만으로도 즉시 충돌이 발생할 수 있습니다. 왜?

unsafe struct node {
    node*[] child;
}

IDE가 키워드 등을 채색하기 시작할 때 발생하는 것 같습니다.

TIO에서 시도해 보면 csc.exe exited with code 1별로 도움이되지 않습니다.

C #의 배열 선언은 C / C ++와 다르지만 위의 내용 완벽하게 유효한 것처럼 보입니다 . 그렇지 않은 이유와 Visual Studio가 충돌하는 이유는 무엇입니까?

내 Visual Studio 버전은 14.0.23107입니다.


이것은 Roslyn알려진 버그입니다 . 이 버그는 Roslyn을 사용하는 모든 버전의 Visual Studio에 영향을줍니다.

VersionOf.net을 올바르게 해석하고 있다면 Roslyn이 내장 된 Visual Studio의 첫 번째 버전은 2015 년입니다. 그 전에는 확장으로 만 사용할 수 있었다고 생각 합니다. 따라서 Visual Studio 2013 및 이전 버전은 영향을받지 않습니다.

마일스톤 16 릴리스 에서 수정 될 예정 입니다. 현재로서는 해당 릴리스가 예정되어 있지 않습니다.

이것은 Roslyn의 버그이기 때문에 Roslyn unsafe struct보다 이전 버전 인 Visual Studio의 이전 버전에서를 포함하는 코드를 편집하고 컴파일하여 "해결"할 수 있습니다 . Visual Studio 2012가 작동합니다. 그런 다음 현재 소프트웨어에서 결과 .DLL을 사용할 수 있습니다.

이 브랜치 에서 직접 Roslyn을 빌드하면 확인되지 않은 수정 사항을 사용할 수 있습니다 . 이 커밋 에서 수정되었습니다 .

참고 URL : https://stackoverflow.com/questions/51732647/why-does-this-code-crash-visual-studio-2015

반응형