启用 C++17 中已删除的功能

Enable removed function in C++17

本文关键字:功能 删除 C++17 启用      更新时间:2023-10-16

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

由于库头使用了一些函数,例如std::binary_functionstd::random_shuffle在 C++17 中删除,因此我无法使用这个库。

是否可以在 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(( 和旧的<功能>的东西">

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