最新的 Visual Studio 2019 v 16.10.0 和 _DEPRECATE_TR1_NAMESPACE

问题描述

我正在 VS2019 v16.10.0 中使用 /std:c++latest 进行编程。使用以前版本的 VS2019 编译一切正常。现在,我在与 _DEPRECATE_TR1_NAMESPACE 相关的标头中收到许多错误。 我如何围绕此弃用进行编译?

错误示例如下:

    error C2146: Syntax error: missing ';' before identifier 'subtract_with_carry_01'

引用的代码在哪里:

template <class _Ty,size_t _Wx,size_t _Sx,size_t _Rx>
class _DEPRECATE_TR1_NAMESPACE subtract_with_carry_01
    : public _Swc_base<_Ty,_Sx,_Rx,_Swc_01_traits<_Ty,_Wx,_Rx>> { // subtract_with_carry_01 generator

解决方法

我发现的解决方法是

#define _HAS_TR1_NAMESPACE 0

在所有头文件之前。

或者添加_HAS_TR1_NAMESPACE=0;在预处理器定义中...

这让我可以使用最新的 C++ 语言!!