C++ 템플릿 작업 내에 가상 함수가 있고 Visual Studio 2015 (모든 디버그/릴리스 및 x86/x64 조합 시도)에서 컴파일 될 때 가상 함수가 있습니다. 그것은 지속적으로 코드의 다음 줄에 컴파일러 오류 C1001와 함께 실패 e_Ty
클래스의 템플릿 매개 변수입니다오류 C1001 : 컴파일러에서 내부 오류가 발생했습니다.
e_Ty *d(new e_Ty[l]);
. 이 오류는 이 std::pair<const int &, int &>
으로 설정된 템플릿 클래스를 사용할 때만 발생합니다. 왜 이것이 작동하지 않아야하는 합법적 인 이유가 있습니까? 아니면 MSVC의 버그입니까?
EDIT
주 :
l
는 미리 선언 (및 함수 호출의 결과 값이 지정) 된 로컬 변수이다.auto
을 사용하여 비활성화 최적화를 사용하고 할당 스타일 초기화를 사용해 보았습니다. 아무 것도 작동하지 않았습니다.e_Ty
이int
일 때 코드가 잘 컴파일됩니다.
어쨌든 잘못 구성된 코드입니다. 어떤 것에도 바인딩하지 않고 정확히 한쌍의 참조를 만드는 방법은 무엇입니까? –
@ T.C .: 감사합니다. 유형이 저에게 등록하지 않았습니다. 그에 따라 내 대답이 수정되었습니다. –
@ T.C. 고맙습니다.'std :: pair'을 사용하도록 변경했으며 효과가있었습니다. –