최근에 시각적 스튜디오 2017로 업그레이드되었지만 표준 라이브러리에서 구문 오류가 발생합니다.<ratio> 및 <memory>의 오류가 vs2013에서 vs2017로 업그레이드 된 후
이것은 출력입니다. 내 생각 엔 어떻게 든 컴파일러가 >>
이 연산자 생각이다
template<class _R1,
class _R2,
bool _Sfinae>
struct _Ratio_multiply_sfinae<_R1, _R2, _Sfinae, void_t<
typename _Ratio_multiply<_R1, _R2>::_Num::type,
typename _Ratio_multiply<_R1, _R2>::_Den::type>>
{ // typename ratio<>::type is unnecessary here
typedef ratio<
_Ratio_multiply<_R1, _R2>::_Num::value,
_Ratio_multiply<_R1, _R2>::_Den::value> type;
};
을 발생,하지만 테스트 목적으로 > >
로 편집 할 수있는
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include\ratio(220): error C2947: expecting '>' to terminate template-argument-list, found '<'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include\ratio(221): error C2226: syntax error: unexpected type 'std::integral_constant<_Ty,_Val>::type'
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include\ratio(221): error C2988: unrecognizable template declaration/definition
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include\ratio(221): error C2059: syntax error: ','
이다.
나는 <ratio>
을 포함시키지 않았지만, <chrono>
따라서 <mutex>
에 사용되는 것으로 생각됩니다.
업데이트 :
난 그냥 컴파일시, InteliSense 전과가 그것에 대해 불평하지 않고 컴파일 한 후 그 장소에 대해 불평하지만, 실현. 어떻게 든 그것은 컴파일러 설정이 변경된 것 같지만 어떻게 알지 못합니다. 다른 질문은 왜 vs2013에서 작동했는지입니다.
새롭고 깨끗한 프로젝트 (예 : 시스템 헤더 파일과 메인 파일)에서 발생합니까? 그렇지 않으면 프로젝트의 #define이 시스템 헤더 파일에 영향을 미친 것으로 의심됩니다. –
@RichardCritten 깨끗한 프로젝트가 아닙니다. 깨끗한 프로젝트는 지금 당장 나를위한 선택이 될 수 없습니다. 어떤 종류의 정의가이 문제를 일으킬 수 있으므로 내 검색 범위를 좁힐 수 있습니까? – VegaBrothers
미리 컴파일 된 헤더를 사용합니까? 모두 청소하고 다시 만들려고 했습니까? –