首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost:未知类型名称“reference_type_of_temporary_wrapper”

Boost:未知类型名称“reference_type_of_temporary_wrapper”
EN

Stack Overflow用户
提问于 2014-12-12 18:39:10
回答 2查看 751关注 0票数 1

我试图用Xcode运行一个用C++编写的旧项目,但是我在boost库中遇到了几个错误。

第一个问题是问题,但第二个评论提供了一个很好的解决办法,它起了作用。

然后我又做了一个干净的构建,现在我得到了错误,它在标题中,即:

代码语言:javascript
复制
Unknown type name 'reference_type_of_temporary_wrapper'

我找不到解决这个问题的办法。有人有什么建议吗?

我正在使用:

  • Mac 10.10
  • Xcode版本6.1 (在项目中,C++语言方言和C++标准库设置为编译器默认值)
  • Boost 1.56
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-14 17:46:11

我设法通过了一个临时的解决方法来传递这个错误。这可能不是最好的解决办法,但有效.

我所做的只是简单地注释掉了boost/optional.hpp中的这些行:

代码语言:javascript
复制
// 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());
//   }
票数 0
EN

Stack Overflow用户

发布于 2015-08-26 18:40:41

有一个公认的答案,但它绕过了这个问题,没有真正解决它,所以我想我会回应一个更最新的答案,为那些搜索。

在最新版本的Boost中,有一些预处理器定义可以传递给应用程序,这些定义将禁用某些C++11功能。对于这篇文章中的特定错误,将其传递给编译器解决了这个问题(GCC在这里):

代码语言:javascript
复制
-DBOOST_NO_CXX11_REF_QUALIFIERS

这个问题上有一个很长的列表,列出了所有可以设置的与C++11相关的Boost预处理器定义。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27449993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档