我正在尝试在Xcode中运行一个用C ++编写的旧项目,但是我在boost库中遇到了一些错误。
第一个是this问题,但第二个评论提供了一个很好的解决方法,并且它有效。
然后我又做了一个干净的构建,现在我收到错误,这是标题,即:
Unknown type name 'reference_type_of_temporary_wrapper'
我找不到任何解决此问题的方法。有人有什么建议吗?
我正在使用:
Mac OSX 10.10
Xcode Version 6.1(项目C ++语言方言和C ++标准库设置为编译器默认值)
Boost 1.56
答案 0 :(得分:2)
已经有一个已接受的答案,但它绕过了问题,并没有真正解决它,所以我想我会回答那些搜索的最新答案。
在更新版本的Boost中,有一些预处理器定义可以传递给您的应用程序,这将禁用某些C ++ 11功能。对于这篇文章中的特定错误,将其传递给编译器可以解决问题(GCC):
{{1}}
可以设置所有与C ++ 11相关的Boost预处理器定义的this SO question上有一个很好的长列表。
答案 1 :(得分:0)
我设法通过临时解决方法传递此错误。它可能不是最好的解决方案,但有效......
我所做的只是简单地从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());
// }