我在c ++ 1z模式下尝试使用clang 3.9编译boost时遇到错误,因为在c ++ 17中删除了auto_ptr。但是,我用c ++ 14模式成功编译了boost,并将lib文件链接到用c ++ 1z模式编译的可执行文件。那么,将来会出现任何ABI问题或潜在的错误吗?
答案 0 :(得分:3)
auto_ptr
不应该出现任何ABI问题,因为它只是一个标题功能 - 在libc ++。dylib中没有任何内容。
通过在包含任何libc ++标头之前定义auto_ptr
,您还可以在libc ++中获取_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR
。
最佳解决方案是向维护人员询问您在使用auto_ptr
编译C ++ 17时使用的任何增强库。