【问题标题】:Enable removed function in C++17在 C++17 中启用已移除的功能
【发布时间】:2019-09-11 11:37:47
【问题描述】:

我的主要代码是用 C++17 编写的。现在我想集成一个针对 C++14 编写的外部库。

由于库头使用了std::binary_functionstd::random_shuffle等在C++17中被删除的函数,所以我不能使用这个库。

是否可以在 C++17 中重新启用已删除的函数? 我正在使用 MSVC 2017,仅适用于 MSVC 的解决方案是完全可以接受的。

【问题讨论】:

  • 当你说你的主要代码是用 C++17 编写的,你的意思是它依赖于 C++17 中的新特性吗?
  • @JohnBollinger 是的。我的代码依赖于 C++17 特性和库。

标签: c++ visual-c++ c++17


【解决方案1】:

您可以在包含任何标准标头之前将_HAS_AUTO_PTR_ETC 定义为 1。

来自https://devblogs.microsoft.com/cppblog/c17-feature-removals-and-deprecations/

  • N4190 “删除 auto_ptr、random_shuffle() 和旧的 东西”

在 VS 2017 15.3(及更早版本)中实现。通过定义恢复 _HAS_AUTO_PTR_ETC 为 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 2018-01-23
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多