我的主要代码是用 C++17 编写的。现在我想集成一个针对 C++14 编写的外部库。
由于库头使用了一些在 C++17 中被删除的函数,例如std::binary_function,std::random_shuffle所以我不能使用这个库。
是否可以在 C++17 中重新启用已删除的函数?我正在使用 MSVC 2017,仅适用于 MSVC 的解决方案是完全可以接受的。
我的主要代码是用 C++17 编写的。现在我想集成一个针对 C++14 编写的外部库。
由于库头使用了一些在 C++17 中被删除的函数,例如std::binary_function,std::random_shuffle所以我不能使用这个库。
是否可以在 C++17 中重新启用已删除的函数?我正在使用 MSVC 2017,仅适用于 MSVC 的解决方案是完全可以接受的。
_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 来恢复