【问题标题】:Does gcc's STL support rvalue references now?gcc 的 STL 现在支持右值引用吗?
【发布时间】:2011-02-10 10:33:14
【问题描述】:

我知道 Visual Studio 2010 的标准库已被重写以支持右值引用,这大大提高了它的性能。

gcc 4.4(及更高版本)的标准库实现是否支持右值引用?

【问题讨论】:

  • "STL" 是标准模板库;其中大部分被 1998 年的 C++ 标准采用,其中一些技术后来被应用于其他组件,例如 iostream 和字符串。今天,有些人错误地将整个 C++ 标准库(“stdlib”)或其完整的模板称为“STL”。见hpl.hp.com/techreports/95/HPL-95-11.htmlsgi.com/tech/stl
  • @Roger:嗯,它是标准的,它确实使用模板,它是一个库。我们为什么要挑这些东西。
  • @Inverse:不,这不是标准的,只是大部分被采用了。此外,我相信 OP 并不意味着排除标准库中并非来自 STL 的部分。
  • 如果 OP 可以评论他们选择接受的答案会很好。

标签: c++ gcc c++11 std libstdc++


【解决方案1】:

我从 gcc 4.4 的 STL 中找到了这个:

#ifdef __GXX_EXPERIMENTAL_CXX0X__
  _Vector_base(_Vector_base&& __x)
  : _M_impl(__x._M_get_Tp_allocator())
  {
    this->_M_impl._M_start = __x._M_impl._M_start;
    this->_M_impl._M_finish = __x._M_impl._M_finish;
    this->_M_impl._M_end_of_storage = __x._M_impl._M_end_of_storage;
    __x._M_impl._M_start = 0;
    __x._M_impl._M_finish = 0;
    __x._M_impl._M_end_of_storage = 0;
  }
#endif

【讨论】:

    【解决方案2】:

    GCC supports rvalue references。不幸的是,the libstc++ page 没有说明库实现是否利用了这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多