est ce que quelq'un peu me dire ce que veut dire les extensions stl:TR1 et TR2
ou trouver documentation car je n ai pas trouvé de documentation en francais
Version imprimable
est ce que quelq'un peu me dire ce que veut dire les extensions stl:TR1 et TR2
ou trouver documentation car je n ai pas trouvé de documentation en francais
Salut,
Pour ce que j'en ai compris, il s'agit d'extensions apportées à la STL, entre deux révisions du langage, qui sont en passe d'être intégrées...
Dans TR1, on trouve, entre autres:
- les pointeurs intelligents (smart_ptr)
- les tulpes
- les tables de hachages
- les (multi)map et (multi)set non ordonnés
- un meilleur support de certaines fonctions de la STL
Certaines de ces fonctionnalités avaient été proposées aux alentours de 1995, mais elles avaient été refusées... Par la suite, elles ont semble-t-il trouvé meilleure grace à ses yeux :D
La TR2 s'est, de son coté attaquée, entre autre, aux algorithmes de gestion des std::string...
Elle apporte certaines modifications à la dernière norme en vigueur et sera vraissemblablement intégrée (en tout ou en partie) dans la norme de C++0x, qui est à venir ;)
Dans TR2, il y aura peut-être enfin la gestion du système de fichiers.
merci pour vous
mais ou puis trouver documentation sur ce sujet(de préférence en francais)
:google2: ...
Personnellement, les informations que je t'ai fournies sont directement tirées des liens fournis par cette formidable machine :D (rechercher stl tr1 ou stl tr2)
Mais je dois avouer que de nombreux liens sur le sujets sont dans la langue de shakespeare :P
TR1 est un "Technical Report" publie par le comite decrivant des extensions a la bibliotheque standard. Un draft est accessible publiquement: http://www.open-std.org/jtc1/sc22/wg...2005/n1836.pdf
Une bonne partie de TR1 sera inclu dans C++0X, mais pas tout (si j'ai bonne memoire, la section 5.2 "Mathematical special functions" fait partie de ce qui ne sera pas inclu) et parfois apres modification.
TR2 est aussi un technical report qui sera publie vraissemblablement apres la sortie de C++0X. Il est en cours d'elaboration. Il est possible d'avoir une idee des propositions actuelles en cherchant dans http://www.open-std.org/jtc1/sc22/wg21/docs/papers; je ne connais pas de documents recapitulant la situation de TR2.
En fouillant le lien donné par Jean-Marc je suis tombé sur ce document tout frais (Mai 2007)Citation:
Envoyé par Jean-Marc.Bourguet
http://www.open-std.org/jtc1/sc22/wg...007/n2228.html
Il detaille les differentes propositions et donne une idée de leur etat d'avancement dans le processus d'intégration a C++0x.
Pour ceux qui cherchent juste a savoir ce que C++0x changera a leur quotidien, passez votre chemin : Il est impossible d'en deduire ce qui figurera dans C++0x meme si certains elements sont deja flaggés comme "ne fera pas parti de C++0x".
Pour ceux qui s'interessent à la theorie du language c'est interessant de voir les differentes propositions. On voit notamment l'influence de certaines bibliotheques et d'autres languages dans les propositions.
bien joué les amis
merci
Bon et ça en est où tout ça ??
Où trouver de la bonne doc accessible aux esprits simples sur
std::tr1::function
std::tr1::bind
?
Cela correspond respectivement à boost.function et boost.bind, cf boost.org section documentation, où tu trouveras des tutoriels & une référence des classes/fonctions/types & compagnie. Tout cela à quelques versions près, mais ces bibliothèques n'évoluent pas énormément on va dire, par rapport à d'autres de Boost.
Bonjour, je souhaiterais utiliser une table associative hachée mais après plusieurs recherches j'ai cru comprendre que rien de standard n'existe encore à ce niveau là. J'ai lu que unordored_map allait devenir standard un jour, en attendant cette classe est dans l'espace de nom tr1.
Alors je me demande si cela ne risque pas de poser des problèmes de compatibilité pour compiler sur d'autres postes si j'utilise cet espace de nom dans mon projet ?
Ce n'est pas dans le standard, mais un certain nombre (la plupart?) des mises en oeuvre la bibliothèque C++ proposent un composant hash_map.
Sur la STL SGI, comme chez Dinkumware, tu le trouveras dans <hash_map>... Leurs interfaces sont presque identiques (de mémoire, il y a une fonction de moins chez dinkumware), et ces deux mises en oeuvre couvrent une grande partie des compilateurs sur le marché. Ton code ne sera pas "garanti" par le standard, mais il sera probablement assez portable.
Par ailleurs, tu as dans boost <boost/unordered_map.hpp> ou <unordered_map>. C'est aussi "quasiment standard"...
Francois
Justement chez moi (Ubuntu avec gcc 4.1.3) ni <unordored_map> ni <hash_map> ne sont reconnus. Ils sont respectivement dans des sous espaces de noms tr1 et ext, et j'ai lu sur un forum que ces chemins et espaces de noms pouvaient varier, c'est ça qui me gène.
unordered_map est aujourd'hui dans std::tr1, il basculera avec la sortie de C++0x dans std. Mais il est probable que les fournisseurs de compilateur continuent pendant un temps à fournir un unordered_map dans std::tr1 pour compatibilité.
Maintenant, pour la portabilité d'un poste à l'autre, tant que les deux psotes utilisent une version suffisamment récente du compilateur (et si les versions sont trop différentes, tu auras sûrement d'autres problèmes bien moins simples à gérer...), ça devrait aller.