将项目从VS2010升级到2015时如何解决chrono上的编译错误

时间:2019-05-15 02:55:37

标签: c++ mfc upgrade chrono

我尝试将项目从VC2010升级到VC2015。 而且我遇到了一些编译错误。 我已经解决了一些。 仍然存在一些错误。 该错误发生在VC2015的计时源上。 我找不到解决方法。

C ++语法是否有变化? 如何解决错误。

下面是错误消息。 我收到约6000个错误。但我删除重复的。 我添加了chrono源代码。

Severity    Code    Description Project File    Line
Error   C2332   'class': missing tag name   MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   384
Error   C2993   '': illegal type for non-type template parameter '<unnamed-tag>'    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   384
Error   C2059   syntax error: 'string'  MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   384
Error   C2974   'std::is_convertible': invalid template argument for '_To', type expected   MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   387
Error   C2955   'std::is_convertible': use of class template requires template argument list    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   387
Error   C2143   syntax error: missing ';' before '{'    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   389
Error   C2447   '{': missing function header (old-style formal list?)   MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   389
Error   C2332   'class': missing tag name   MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   393
Error   C2993   '': illegal type for non-type template parameter '<unnamed-tag>'    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   393
Error   C2059   syntax error: 'string'  MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   393
Error   C2143   syntax error: missing ';' before '{'    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   397
Error   C2447   '{': missing function header (old-style formal list?)   MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   397
Error   C2143   syntax error: missing ',' before '<'    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   412
Error   C2518   keyword 'typename' illegal in base class list; ignored  MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   412
Error   C2976   'std::chrono::_Duration_div_mod': too few template arguments    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   420
Error   C2144   syntax error: 'int' should be preceded by ';'   MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   421
Error   C2433   'type': 'inline' not permitted on data declarations MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   421
Error   C4430   missing type specifier - int assumed. Note: C++ does not support default-int    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   421
Error   C2065   '_Rep1': undeclared identifier  MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   422
Error   C2065   '_Period1': undeclared identifier   MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   422
Error   C2923   'std::chrono::duration': '_Rep1' is not a valid template type argument for parameter '_Rep' MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   422
Error   C2923   'std::chrono::duration': '_Period1' is not a valid template type argument for parameter '_Period'   MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   422
Error   C4430   missing type specifier - int assumed. Note: C++ does not support default-int    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   423
Error   C2988   unrecognizable template declaration/definition  MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   423
Error   C2143   syntax error: missing ',' before '&'    MyProject_VS2015    C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono   423


C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\chrono
384 template<class _CR,
385     class _Period1,
386     class _Rep2,
387     bool = is_convertible<_Rep2, _CR>::value>
388     struct _Duration_div_mod1
389     {   // return type for duration / rep and duration % rep
390     typedef duration<_CR, _Period1> type;
391     };
392 
393 template<class _CR,
394     class _Period1,
395     class _Rep2>
396     struct _Duration_div_mod1<_CR, _Period1, _Rep2, false>
397     {   // no return type
398     };


408 template<class _Rep1,
409     class _Period1,
410     class _Rep2>
411     struct _Duration_div_mod<_Rep1, _Period1, _Rep2, false>
412         : _Duration_div_mod1<typename common_type<_Rep1, _Rep2>::type,
413             _Period1, _Rep2>
414     {   // return type for duration / rep and duration % rep
415     };
416 
417 template<class _Rep1,
418     class _Period1,
419     class _Rep2> inline
420     typename _Duration_div_mod<_Rep1, _Period1, _Rep2>::type
421         constexpr operator/(
422             const duration<_Rep1, _Period1>& _Left,
423             const _Rep2& _Right)
424     {   // divide duration by rep
425     typedef typename common_type<_Rep1, _Rep2>::type _CR;
426     typedef duration<_CR, _Period1> _CD;
427     return (_CD(_CD(_Left).count() / _Right));
428     }

0 个答案:

没有答案