提升:未知类型名称' reference_type_of_temporary_wrapper'

时间:2014-12-12 18:39:10

标签: c++ xcode macos boost

我正在尝试在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

2 个答案:

答案 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());
//   }