Petite question qui pourrait parra�tre "b�tes"... Le C++ �voluera t'il ? Ou c�dera t'il la place � un language plus complet que le C++ ?
Mais est-ce que le C++ est complet... complet ?
Petite question qui pourrait parra�tre "b�tes"... Le C++ �voluera t'il ? Ou c�dera t'il la place � un language plus complet que le C++ ?
Mais est-ce que le C++ est complet... complet ?
Oui le C++ va �voluer, le nom du prochain standard est C++0x, quand aux am�liorations que �a va apporter je m'y suis pas int�ress� mais il y a surement pas mal de monde ici qui pourra te renseigner.
Est-ce que le C++ est complet ? Ca d�pend de ce que tu entends par complet, tu peux pr�ciser ? Parce que tous les langages ont leurs sp�cificit�s.
Humm bien.
En faites, j'ai un livre sur le C++ (un gros livre). J'aimerais savoir, si il sera toujours valable quand le C++0x "sortira".
Je supposes que le C++0x sera assez semblable au C++ de mnt. Et donc, apr�s ma formation au C++ actuelle, il ne me sera pas trop dur de me mettre � jour par rapport au C++0x.
En bref, j'aimerais savoir, si le livre que je poss�des ne sera pas inutile quand le C++0x sera "sorti".
Inutile je dirais proabalement pas m�me si certaines choses auront chang�es.
Mais connaissez-vous approximativement la date de "sortie" de ce nouveau standard (qui succ�dera donc � l'ANSI/ISO actuel je suppose) ?
Il me semble que c'est en partie trait� dans la FAQ.
Je crois avoir lu dans un blog que le futur standard sera valid� vers la fin de la d�cennie -- de plus apr�s "C++0x" ne serait plus un sobriquet valide, et ils l'aiment bien au commit�.
Dans les trucs en plus ... pas mal de choses. J'avoue ne pas tout suivre.
Diverses biblioth�ques dont pas mal ont �t� exp�riment�es/pr�-�tudi�es chez boost. On les retrouve d�j� dans certaines distributions (GCC, dinkumware, ...) sous le namespace std::tr1.
Des corrections mineures au langage, et des plus profondes. J'attends avec h�te la s�mantique d�placement.
C�t� ce que l'on connait du C++ et des bouquins, il faut voir qu'aujourd'hui d�j� beaucoup trop de bouquins passent � c�t� du C++ 98 et de comment il serait bon de l'utiliser.
De plus si certaines notions comme les concepts sont valid�es, il va y avoir encore tr�s probablement des �volutions dans la philosophie d'utilisation du C++ (c�t� d�veloppement de biblioth�ques essentiellement, je crois) -- � moins de vouloir se restreindre au pur objet, il y a des gens comme �a.
Bref, un point de d�part moins impr�cis et moins biais� que moi sera la FAQ o� on devrait pouvoir trouver un lien vers le site du commit� de standardisation.
Il a d� y avoir des petites discussions sur fclc++ derni�rement (un mois ou deux) -> "post lil'hammer metting" (ou un titre comme �a)
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...
Que veux-tu dire par l� ? Que pas mal de livres sur le C++ sont mal �crits ? Comment est-ce que cela se fait selon toi ?Envoy� par Luc Hermitte
(Tu sembles �tre un programmeur exp�riment� donc ton avis la dessus m'int�resse...)
merci
J'entends que beaucoup de livres ne montrent pas le C++ tel qu'il devrait �tre utilis�, mais le C++ d'apr�s quelqu'un qui connait le C, le Pascal, le Java, ... (cocher la case qui va bien), et qui d�barque donc avec des habitudes et des idiomes pas toujours tr�s adapt�s quand ils ne sont pas dangereux et faux une fois transpos�s.
Il y a divers d�tails du C++ qui changent la donne. Dans les divers post-it (sur les divers forums), il y a des bouts de discussions � ce sujet et d'autres. Dans les r�currents "quel bouquin utiliser", d'autres bouts de discussions.
Le C++ n'est pas un langage qui se limite � une syntaxe.
Pour ce qui est de la s�mantique de d�placement (j'avais oubli� le "de"), il s'agit que la responsabilit� des donn�es stock�es dans un objet est d�plac�e (confi�e) � un autre objet au lieu d'une copie de type duplication.
Un exemple type serait une matrice de beaucoup d'�l�ments.
Avoir une fonction qui retourne une matrice veut g�n�ralement dire (mais pas toujours, cela d�pend des compilateurs, des options de compilations et divers d�tails -> chercher C++ et RVO '"return value optimization")) que l'on va copier la matrice : soit faire une allocation en m�moire pour stocker les �l�ments � retourner, et faire une lib�ration des �l�ments qui avaient �t� allou�s dans la fonction. Ce n'est pas toujours efficace.
Avec une s�mantique de d�placement, on pourrait transf�rer de fa�on certaine la responsabilit� de la zone m�moire qui avait �t� allou�e dans la fonction.
Plus d'infos dans les bouquins/sites qui traitent des std::auto_ptr<> (voir GOTW par exemple (Guru Of The Week)), dans l'article sur MOJO d'Andrei Alexandrescu (lien accessible depuis son site, google!), et bien s�r dans les diverses propositions � ce sujet dispos sur le site du commit�.
Note: Mon exemple est assez simpliste, la s�mantique de d�placement couvre d'autres applications. -> puits et sources (=> GOTW), ...
EDIT: des 's' s'�taient �gar�s
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...
Ah bon. Moi ce qui me surprend un peu c'est que les livres (en g�n�ral) se concentrent beaucoup sur le langage et trop peu sur l'algorithmique.Envoy� par Luc Hermitte
Je me trompe peut �tre, c'est une impression ...
Sinon ce qui me fait bien rire c'est les phrases du genre "Ce livre a �t� con�u pour que vous maitrisiez le langage X � la fin de votre lecture ..."
S'il suffisait de lire un livre pour maitriser un langage ...
S'il suffisiat de lire un livre pour conna�tre tous les algos...
Beaucoup de livres proposent tout simplement un code faux, qui ne compile pas sur des compilos r�cents. D'autres donnent de mauvaises habitudes (char *, ...), ou r�inventent la roue en n'utilisant pas les possibilit�s de la STL.
Bref, le C++ est trop souvent pr�sent� comme un C avec des classes. Le code donn� peut souvent compiler en Java/C# moyennant quelques changements mineurs.
En ce qui me concerne, je pense que le C++ commence aux templates.
Pour le lien de la FAQ:
http://c.developpez.com/faq/cpp/?pag...DIVERS_cpp_o_x
Je n'ai jamais dit que c'�tait le cas (d'ailleurs qu'entends-tu par "tous" les algos ?)Envoy� par Miles
Tout � fait d'accord, tous les livres que j'ai lu ne parlaient pas des templates, juste d'une surcouche du C![]()
La genericite uniquement? A mon avis, le grand apport sont les fonctions virtuelles, qui donnent au C++ toute sa puissance (et sa reelle qualite de langage oriente objet).Envoy� par Aurelien.Regat-Barrel
Un programmeur C qui commence le C++ va se dire que c'est un "meilleur C", avec un typage plus fort, un prototypage obligatoire, les simplifications apportees par le passage par reference et la surcharge d'operateurs, etc.
Ensuite, il se mettra a la programmation par objet, comme il le faisait en C, en utilisant des types abstraits de donnees via la declaration de types incomplets. Rien de nouveau pour quelqu'un qui a concu une bibliotheque...
Enfin, s'il a le courage, il decouvrira l'orientation objet. L'abstraction et l'heritage sont faisables en C, mais la grande puissance du C++ apparait avec les fonctions virtuelles (le polymorphisme en C, il faut s'accrocher...).
Les fonctions virtuelles n'ont rien de propre au C++. Ca existait avant, �a existe en C#, Java, ... c'est un concept objet qu'on retrouve � l'identique dans plein d'autres langages objets, � la syntaxe pr�s. Et encore:
ce code compile en C++, Java, C#, ...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 class A { virtual void Hello() {} };
Par contre, lire un fichier de mots, les trier par ordre alphab�tique et stocker le tout dans un autre fichier, �a se fait en quelques lignes en C++ et de mani�re tr�s performante gr�ce aux templates.
Oui. Je disais seulement que par rapport au C, il me semble que l'apport le plus important sont les fonctions virtuelles. Par rapport au C# ou au Java, c'est peut-etre les templates, je ne peux pas juger comme je ne connais ni le C#, ni le Java.Envoy� par Aurelien.Regat-Barrel
Par contre, tu dis que les fonctions virtuelles existaient avant le C++. Quel langage les a introduit? Smalltalk?
En m�me temps la glib impl�mente tout les aspects de l'orient� objet en C ... Faut pas oublier que le language n'est qu'une facilit�, apr�s c'est l'utilisation qu'on en fait qui compte.Envoy� par DaZumba
Quelqu'un n'aurait-il pas quelque information � propos du C++0x ?
8)
Ok. Moi je parlais de ce qui faisait la particularit� de C++, je ne me situais pas par rapport � un langage particulier.Envoy� par DaZumba
Je sais pas. Je sais que C++ s'est pas mal inspir� de Simula, mais je connais pas ce langage. Je pense que ces concepts objets sont bien plus anciens, et ont �t� d�velopp�s d�s les ann�es 60.Par contre, tu dis que les fonctions virtuelles existaient avant le C++. Quel langage les a introduit? Smalltalk?
Comme l'a dit zdra, c'est pas vraiment li� au langage. Le C n'interdit pas de faire de l'orient� objet, avec des appels virtuels. C'est plus contraigant c'est tout. Il cite la glib, on pourrait aussi citer COM, ou certains m�canismes de Win32.
Partager