2010-04-21 8 views
2

Je sais que la bibliothèque standard de Visual Studio 2010 a été réécrite pour prendre en charge les références rvalue, ce qui améliore considérablement ses performances. L'implémentation de bibliothèque standard de gcc 4.4 (et au-delà) prend-elle en charge les références rvalue?Le STL de gcc prend-il en charge les références rvalue maintenant?

+1

"STL" est la Standard Template Library; la plus grande partie a été adoptée par la norme C++ de 1998, et certaines de ses techniques ont ensuite été appliquées à d'autres composants tels que les iostreams et les chaînes. Aujourd'hui, certaines personnes se réfèrent de manière incorrecte à l'ensemble de la bibliothèque standard C++ (le «stdlib») ou à son ensemble complet de modèles en tant que «STL». Voir http://www.hpl.hp.com/techreports/95/HPL-95-11.html et http://www.sgi.com/tech/stl/ –

+0

@Roger: bien c'est standard, et ça utilise des modèles, et c'est une bibliothèque. Pourquoi est-ce que nous pinaillons ce truc. – Inverse

+1

@Inverse: Non, tout n'est pas standard, seule la plus grande partie a été adoptée. De plus, je crois que le PO ne veut pas dire exclure les parties du stdlib qui ne proviennent pas du STL. –

Répondre

4

Je trouve cela de la STL de gcc 4.4:

#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