컴파일러 오류 C3535
는 'type2'에서 'type1'의 형식을 추론할 수 없습니다.
키워드(keyword) 선언된 auto
변수의 형식은 초기화 식의 형식에서 추론할 수 없습니다. 예를 들어 이 오류는 초기화 식이 형식이 아닌 것으로 void
평가되는 경우에 발생합니다.
이 오류를 해결하려면
초기화 식의 형식이 아닌지
void
확인합니다.선언이 기본 형식에 대한 포인터가 아닌지 확인합니다. 자세한 내용은 기본 형식을 참조 하세요.
선언이 형식에 대한 포인터인 경우 초기화 식이 포인터 형식인지 확인합니다.
예제
다음 예제에서는 초기화 식이 계산되므로 C3535를 void
생성합니다.
// C3535a.cpp
// Compile with /Zc:auto
void f(){}
int main()
{
auto x = f(); //C3535
return 0;
}
다음 예제에서는 문이 변수 x
를 추론된 형식에 대한 포인터로 선언하지만 이니셜라이저 식의 형식은 double이므로 C3535를 생성합니다. 따라서 컴파일러는 변수의 형식을 추론할 수 없습니다.
// C3535b.cpp
// Compile with /Zc:auto
int main()
{
auto* x = 123.0; // C3535
return 0;
}
다음 예제에서는 변수 p
가 추론된 형식에 대한 포인터를 선언하지만 초기화 식은 포인터 형식이 아니므로 C3535를 생성합니다.
// C3535c.cpp
// Compile with /Zc:auto
class A { };
A x;
auto *p = x; // C3535
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기