2010-04-21 51 views
2

我知道Visual Studio 2010的標準庫已被重寫以支持右值引用,這大大提高了它的性能。現在gcc的STL支持右值引用嗎?

gcc 4.4(及以上版本)的標準庫實現是否支持右值引用?

+1

「STL」 是標準模板庫;其中大部分是1998年C++標準採用的,其中一些技術後來被應用於其他組件,如iostream和字符串。今天,有些人錯誤地將整個C++標準庫(「stdlib」)或其全部模板稱爲「STL」。請參閱http://www.hpl.hp.com/techreports/95/HPL-95-11.html和http://www.sgi.com/tech/stl/ – 2010-04-21 16:52:52

+0

@Roger:它是標準的,它是使用模板,它是一個庫。爲什麼我們挑選這些東西。 – Inverse 2010-04-22 22:59:37

+1

@反過來:不,它不全是標準的,只有大部分被採用。另外,我相信OP並不意味着排除不是來自STL的stdlib部分。 – 2010-04-22 23:12:59

回答

4

我發現這個從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