ошибка в & lt; ratio & gt; и & lt; память & gt; после обновления с vs2013 до vs2017

Я недавно обновился до Visual Studio 2017, и теперь я получаю синтаксическую ошибку из стандартной библиотеки.

Это выход.

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: ','

Вот где это происходит

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;
};

Я думаю, что так или иначе думает компилятор >> это оператор, но я не могу отредактировать его > > в целях тестирования.

Я не включил <ratio> но я думаю, что это используется для <chrono> и поэтому <mutex>,

Обновить:

Я только что понял, что во время компиляции InteliSense жалуется на это место, но до и после компиляции оно не жалуется на это. Почему-то кажется, что настройки компилятора были изменены, но как я не знаю. Другой вопрос, почему он работал с vs2013.

1

Решение

Я думаю, что стандарт изменился между C ++ 03 и C ++ 11 для решения проблемы, о которой вы упомянули «>>» против «>>»

Возможно, вам придется переключать версии компилятора.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]