2

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

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

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

4

1 回答 1

3

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

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

  • N4190 “删除 auto_ptr、random_shuffle() 和旧的 <functional> 东西”</li>

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

于 2019-09-11T11:57:15.583 回答