我试图用Xcode运行一个用C++编写的旧项目,但是我在boost库中遇到了几个错误。
第一个问题是这问题,但第二个评论提供了一个很好的解决办法,它起了作用。
然后我又做了一个干净的构建,现在我得到了错误,它在标题中,即:
Unknown type name 'reference_type_of_temporary_wrapper'我找不到解决这个问题的办法。有人有什么建议吗?
我正在使用:
发布于 2014-12-14 17:46:11
我设法通过了一个临时的解决方法来传递这个错误。这可能不是最好的解决办法,但有效.
我所做的只是简单地注释掉了boost/optional.hpp中的这些行:
// reference_type_of_temporary_wrapper operator *() && { return boost::move(this->get()) ; }
// reference_type_of_temporary_wrapper value() &&
// {
// if (this->is_initialized())
// return boost::move(this->get()) ;
// else
// throw_exception(bad_optional_access());
// }发布于 2015-08-26 18:40:41
有一个公认的答案,但它绕过了这个问题,没有真正解决它,所以我想我会回应一个更最新的答案,为那些搜索。
在最新版本的Boost中,有一些预处理器定义可以传递给应用程序,这些定义将禁用某些C++11功能。对于这篇文章中的特定错误,将其传递给编译器解决了这个问题(GCC在这里):
-DBOOST_NO_CXX11_REF_QUALIFIERS在这个问题上有一个很长的列表,列出了所有可以设置的与C++11相关的Boost预处理器定义。
https://stackoverflow.com/questions/27449993
复制相似问题