gpt4 book ai didi

visual-studio-2017 - 如何在 Visual Studio C++17 中恢复 auto_ptr

转载 作者:行者123 更新时间:2023-12-04 03:14:25 25 4
gpt4 key购买 nike

此博客页面提到 Visual Studio 删除了一些标准功能:

https://blogs.msdn.microsoft.com/vcblog/2017/12/08/c17-feature-removals-and-deprecations/

我有一个项目使用了一些现在使用 C++17 特性的 C++ 库。该项目还使用第三方库 websocketpp ( https://github.com/zaphoyd/websocketpp ),该库仍使用一些现已删除的功能。例如 auto_ptr 和 binary_function。我收到编译器错误,说明它们不是“std”的成员。

上面的博客提到可以使用细粒度控制恢复已删除的功能。我想我现在可以用它来编译这个项目。从长远来看,我会看到将 websocketpp 升级到 C++17 或用其他东西替换它。

但是,恢复功能的魔力是什么?有什么我需要#define 的吗?如果是这样,是什么?

最佳答案

在 VS2017 v15.5 中,它根据项目的/std:c++17 设置有条件地排除在外。您可以通过强制基础宏值来强制包含它。执行此操作的两种基本方法:

  • 项目 > 属性 > C/C++ > 预处理器 > 预处理器定义并添加 _HAS_AUTO_PTR_ETC=1 .为所有配置和平台执行此操作。
  • 如果您使用预编译头,那么您可能更喜欢在那里定义宏。在任何 #includes 之前,插入 #define _HAS_AUTO_PTR_ETC 1 .

  • 当心“ETC”,你也会啜饮已弃用的 random_shuffle() 和 unary_function<>。预测 future 很困难,但这可能会在 future 一段时间内奏效。

    关于visual-studio-2017 - 如何在 Visual Studio C++17 中恢复 auto_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48882439/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com