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?
2
A
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
1
GCC supports rvalue references. Malheureusement, the libstc++ page ne dit pas si l'implémentation de la bibliothèque en tire profit.
"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/ –
@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
@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. –