Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
846 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5
Auteur Sujet :

C++ mauvais langage ?

n°1861918
frenchtouc​co
Posté le 15-03-2009 à 23:28:51  profilanswer
 

Reprise du message précédent :
Quel est l'inconvénient principal, qui fait que tu choisis de ne pas rentrer Boost dans beaucoup de tes projets ? Trop de fichiers à inclure ?


---------------
je connais tout, je ne sais rien, seule certitude, à vouloir trop on finit par tout perdre.
mood
Publicité
Posté le 15-03-2009 à 23:28:51  profilanswer
 

n°1861919
Taz
bisounours-codeur
Posté le 15-03-2009 à 23:34:14  profilanswer
 

frenchtoucco a écrit :

Quel est l'inconvénient principal, qui fait que tu choisis de ne pas rentrer Boost dans beaucoup de tes projets ? Trop de fichiers à inclure ?


on te l'autorise pas forcément, et le système spécial de build de boost, ses changements d'API/ABI/blabla, sa disparité de versions d'une distrib à l'autre, font que tu l'intègres pas forcément.
Biensur si ça correspond à une fonctionnalité (graph, etc), ça se tient.
 
Le fait est que l'inclure systématiquement, ça t'élargit considérablement ta boîte à outils, mais ça peut être un peu lourd à mettre en place pour 2/3 trucs utilisés au final.

n°1861957
Joel F
Real men use unique_ptr
Posté le 16-03-2009 à 08:20:08  profilanswer
 

aprés ca dépend. Ici on s'en sort en utilisant bcp qui permet de n'extraire que les features nécessaires.

n°1861959
guybrush02
Posté le 16-03-2009 à 08:23:32  profilanswer
 

weblook$$ a écrit :


c'est un langage de script impératif quoi, tu trouves la diff si énormissime que ça ??


C'est un langage de programmation interprété multi-paradigme... Oui, je trouve la différence suffisamment importante.  
 
Masklinn> Très constructif ^^

n°1861974
Un Program​meur
Posté le 16-03-2009 à 09:00:00  profilanswer
 

Taz a écrit :

J'avoue qu'à la lecture du très intéressant article ici, j'ai l'impression qu'on va droit dans le mur :/
 
Ce genre de feature, ça va être super, seulement ça manque de quelque chose d'automatique pour l'usage quotidien (par exemple en C# pour une relation de comparaison, il suffit de faire un == et ça roule. Oui je sais y aura toujours boost, mais bon, dans beaucoup de projet, j'ai du mal à faire rentrer boost qui n'a pas que des qualités).


 
Est-ce que tu peux etre plus explicite et dire de quoi tu parles precisement? Je ne vois pas le rapport entre les rvalue reference et un operator== (j'avoue ne pas avoir lu l'article mais je crois connaitre assez bien la chose et ce que j'ai lu de l'article ne m'a rien appris).

n°1861983
Taz
bisounours-codeur
Posté le 16-03-2009 à 09:08:28  profilanswer
 

Un Programmeur a écrit :


 
Est-ce que tu peux etre plus explicite et dire de quoi tu parles precisement? Je ne vois pas le rapport entre les rvalue reference et un operator== (j'avoue ne pas avoir lu l'article mais je crois connaitre assez bien la chose et ce que j'ai lu de l'article ne m'a rien appris).


C'est une comparaison. Pour écrire une classe de base correcte et optimale, on va passer de 4 fonctions membres (constructeur, constructeur par copie, operator=, destructeur) à 6 ...

n°1861990
Joel F
Real men use unique_ptr
Posté le 16-03-2009 à 09:24:02  profilanswer
 

sans vouloir etre pessimiste, deja que pas grand monde connait les 4 premières :/ ....

Message cité 1 fois
Message édité par Joel F le 16-03-2009 à 09:24:08
n°1862012
Un Program​meur
Posté le 16-03-2009 à 10:43:23  profilanswer
 

Taz a écrit :

C'est une comparaison. Pour écrire une classe de base correcte et optimale, on va passer de 4 fonctions membres (constructeur, constructeur par copie, operator=, destructeur) à 6 ...


 
J'ai du mal a voir le rapport avec l'heritage.  La grosse majorite de mes classes de base n'ont pas de constructeur de copie ni d'operator= (heritage de NonCopyable, declares prives mais pas implementes,...), et continueront a ne pas en avoir.  Et une bonne partie de mes classes valeurs ne participent pas dans des relations d'heritage.  
 
Sur le fond, l'utilisation de rvalues reference est essentiellement une technique d'optimisation (il y a quelques autres cas genre operator<< sur les streams qui peuvent en beneficier pour la semantique, mais c'est rare de vouloir modifier des temporaires pour des raisons semantiquement valables) -- et comme toute technique d'optimisation a mettre en oeuvre apres avoir verifie qu'il y avait un probleme de perf et que c'est une solution.  Et a priori, une bonne partie de mes classes valeurs n'ont aucune raison d'en beneficier.

n°1862017
Joel F
Real men use unique_ptr
Posté le 16-03-2009 à 10:51:13  profilanswer
 

Un Programmeur a écrit :


J'ai du mal a voir le rapport avec l'heritage.  La grosse majorite de mes classes de base n'ont pas de constructeur de copie ni d'operator= (heritage de NonCopyable, declares prives mais pas implementes,...), et continueront a ne pas en avoir.  Et une bonne partie de mes classes valeurs ne participent pas dans des relations d'heritage.  


 
Si tout mes étudiants faisait la même chose  :sweat:  :cry:  

n°1862018
el muchach​o
Comfortably Numb
Posté le 16-03-2009 à 10:52:38  profilanswer
 

Joel F a écrit :

sans vouloir etre pessimiste, deja que pas grand monde connait les 4 premières :/ ....


Dans la plupart des cas, cependant, l'implémentation est toujours la même et pourrait être générée par un éditeur un peu intelligent, comme eclipse le fait pour les get/set Java.
En Emacslisp, ça doit pas être la mer à boire.


Message édité par el muchacho le 16-03-2009 à 10:55:03

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 16-03-2009 à 10:52:38  profilanswer
 

n°1862027
Taz
bisounours-codeur
Posté le 16-03-2009 à 11:21:10  profilanswer
 

Je disais "de base" dans le sens "toute bête"

n°1862030
Taz
bisounours-codeur
Posté le 16-03-2009 à 11:22:41  profilanswer
 

Au final tu me diras, si on utilise des smart pointers, le problème se pose bien moins.

n°1862056
weblook$$
Posté le 16-03-2009 à 13:19:36  profilanswer
 

guybrush02 a écrit :


C'est un langage de programmation interprété multi-paradigme... Oui, je trouve la différence suffisamment importante.  
 
Masklinn> Très constructif ^^


cette discussion est HS, on recentre sur le C++.

n°1862065
guybrush02
Posté le 16-03-2009 à 13:43:58  profilanswer
 

weblook$$ a écrit :


cette discussion est HS, on recentre sur le C++.


La question posée étant "Peut on considérer ce langage comme en dessous des langagesactuelles/futurs, ou est ce que selon vous le C++ restera  un langagephare dans l'avenir ", je trouve que considérer un langage tel que Python n'est pas se détourner du sujet. Python tend de plus en plus à remplacer C++/Java dans l'enseignement, et a déjà largement dépassé ces deux langages dans la recherche scientifique.

n°1862074
weblook$$
Posté le 16-03-2009 à 14:14:29  profilanswer
 

ok et sinon un bon lien concernant les rvalue reference pour ceux qui souhaite un papier synthétique:  http://www.open-std.org/jtc1/sc22/ [...] n2027.html

n°1862075
masklinn
í dag viðrar vel til loftárása
Posté le 16-03-2009 à 14:16:50  profilanswer
 

weblook$$ a écrit :


cette discussion est HS, on recentre sur le C++.


Dans la mesure où tu es la personne l'ayant fait déraper, tout le monde se porterait mieux si tu arrêtais tout simplement de participer stpmerssi [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1862077
weblook$$
Posté le 16-03-2009 à 14:17:44  profilanswer
 

ok, lol.

n°1862154
Modération
Posté le 16-03-2009 à 16:25:41  answer
 

Merci de recentrer le débat, sinon ça va tomber [:minor] [:shakalagoons]

n°1862158
Taz
bisounours-codeur
Posté le 16-03-2009 à 16:34:28  profilanswer
 

Au fins, je vois pas trop d'ailleurs l'usage des const&&

n°1862169
Un Program​meur
Posté le 16-03-2009 à 16:48:42  profilanswer
 

Perf et resolution de problemes de faiseurs de bibliotheques (perfect forwarding, surcharge atypique où on modifie un des arguments comme avec << pour les flux, necessite de semantique de deplacement comme auto_ptr qui n'aurait pas eu besoin d'autant d'iterations pour se stabiliser)

n°1862225
Joel F
Real men use unique_ptr
Posté le 16-03-2009 à 18:52:09  profilanswer
 

et le support pour la move semantic [:aloy]

n°1862255
Taz
bisounours-codeur
Posté le 16-03-2009 à 20:20:53  profilanswer
 

Joel F a écrit :

et le support pour la move semantic [:aloy]


ça aurait quasi mérité un opérateur

n°1862288
Joel F
Real men use unique_ptr
Posté le 16-03-2009 à 21:10:36  profilanswer
 

il restait pas grnad chose comme token de libre ? Tu aurais vu quoi ?
a<-b ?

n°1862338
Taz
bisounours-codeur
Posté le 17-03-2009 à 07:34:25  profilanswer
 

Joel F a écrit :

il restait pas grnad chose comme token de libre ? Tu aurais vu quoi ?
a<-b ?


Je sais pas, un truc avec une flèche en tout cas, parce que ça va faire lourd les  X x(std::move(x0)). Enfin, on verra bien à l'usage.

n°1862350
Un Program​meur
Posté le 17-03-2009 à 08:41:48  profilanswer
 

a <- b s'interprete comme a < (-b)

n°1862362
Joel F
Real men use unique_ptr
Posté le 17-03-2009 à 09:46:23  profilanswer
 

oiui oui certes, c'etaits une idée en l'air :p
mais j'aurait rien eu contre un  a >>> b ou autre tuc non ambigu

n°1862433
weblook$$
Posté le 17-03-2009 à 11:37:57  profilanswer
 

Mais ça ne va pas être transparent/automatique l'appel au constructeur de déplacement ?


---------------

n°1862467
0x90
Posté le 17-03-2009 à 13:01:07  profilanswer
 

Taz a écrit :


Je sais pas, un truc avec une flèche en tout cas, parce que ça va faire lourd les  X x(std::move(x0)). Enfin, on verra bien à l'usage.


On fera des macros [:dawa]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1862591
weblook$$
Posté le 17-03-2009 à 17:06:48  profilanswer
 

ou un peu plus C++ spirit,  surcharger un opérateur qui fait l'opération de déplacement ou fait l'appel au construteur de déplacement


---------------

n°1862673
Joel F
Real men use unique_ptr
Posté le 17-03-2009 à 19:56:42  profilanswer
 

lequel d'opérateur :E

n°1862679
weblook$$
Posté le 17-03-2009 à 20:13:54  profilanswer
 

Joel F a écrit :

lequel d'opérateur :E


|= ou &=


Message édité par weblook$$ le 17-03-2009 à 20:16:27

---------------

n°1862690
Joel F
Real men use unique_ptr
Posté le 17-03-2009 à 20:51:47  profilanswer
 

tu veut dire les opérateur 'ou logique et affectation' qui, pour des types valeurs peuvent DEJA avoir un sens :o

n°1862691
weblook$$
Posté le 17-03-2009 à 21:00:57  profilanswer
 

oui je sais bien c'est pas parfait, mais si les |= et &= doivent être utilisés pour leur rôle premier, tu surcharges pas et t'utilises les méthodes de la std prévues à cet effet


---------------

n°1862791
weblook$$
Posté le 18-03-2009 à 01:31:43  profilanswer
 

en tout cas plus ça va plus le C++ sera clairement un langage d'élite un peu comme les langages fonctionnels le sont. Quand on voit la somme des choses à connaître désormais pour correctement programmer dans ce langage, on peut raisonnablement parier que  le nombre d'utilisateurs ne devrait pas augmenter de manière vertigineuse...


---------------

n°1862803
Joel F
Real men use unique_ptr
Posté le 18-03-2009 à 08:01:30  profilanswer
 

il en faut des langages d'élites sinon on va s'ennuyer taz, Un Prog et moi :o

n°1862805
BenO
Profil: Chercheur
Posté le 18-03-2009 à 08:11:36  profilanswer
 

weblook$$ a écrit :

en tout cas plus ça va plus le C++ sera clairement un langage d'élite un peu comme les langages fonctionnels le sont. Quand on voit la somme des choses à connaître désormais pour correctement programmer dans ce langage, on peut raisonnablement parier que  le nombre d'utilisateurs ne devrait pas augmenter de manière vertigineuse...


 
Ou que les gens continueront à programmer Java-Style / en utilisant un subset du langage :o


---------------
Python Python Python
n°1862808
Un Program​meur
Posté le 18-03-2009 à 08:32:05  profilanswer
 

weblook$$ a écrit :

en tout cas plus ça va plus le C++ sera clairement un langage d'élite un peu comme les langages fonctionnels le sont. Quand on voit la somme des choses à connaître désormais pour correctement programmer dans ce langage, on peut raisonnablement parier que  le nombre d'utilisateurs ne devrait pas augmenter de manière vertigineuse...


 
C'est certainement -- et de plus en plus -- un langage a deux niveaux.  Et ceux qui suivent la normalisation etant plutot des experts, ils ont tendance a mettre l'accent sur ce qui les interesse.  Ce qui ne veut pas dire qu'il n'y a rien qui rendra la vie plus facile au programmeur median, ce pour qui "template metaprogrammation" ne veut rien dire.
 
Tout d'abord, un certain nombre de techniques avancees sont la pour permettre de mieux cacher le fait qu'elles sont utilisees.  Les concepts vont rendre les messages d'erreur quand on utilise des templates plus comprehensibles.  Les rvalues references permettent de diminuer le cout des l'abstractions -- et donc rendre moins commun la necessite de ne pas utiliser des abstractions fournies par les specialistes pour des raisons de performance.  Elles permettent -- ainsi que les templates variadiques -- aussi de rendre certaines abstractions beaucoup plus transparentes au niveau syntaxique.
 
Il y a aussi un certain nombre de petites choses dont on parle moins.  Mais qui vont a mon avis avoir un effet plus grand sur la vie quotidienne du programmeur moyen.  Dans cette serie, ma favorite est certainement "auto", mais la possibilite d'avoir >> pour fermer deux templates ou la nouvelle syntaxe de for.
 
Il y a aussi des choses se situant a un niveau intermediaire.  Les lambda en font partie.  D'un certain point de vue c'est un machin de specialistes, c'est trop complique, mais c'est dans les features avancees celles qui a le plus de chance d'etre utilisee par le programmeur lambda.

n°1862824
Joel F
Real men use unique_ptr
Posté le 18-03-2009 à 09:28:18  profilanswer
 

Un Programmeur a écrit :


la nouvelle syntaxe de for.


J'ai loupé ça , cad ?
 

Un Programmeur a écrit :


Les lambda en font partie.  [..] utilisee par le programmeur lambda.


ou plutot par des lambda-programmeur  :whistle:

n°1862831
Polo37
Posté le 18-03-2009 à 09:40:21  profilanswer
 

Joel F a écrit :


J'ai loupé ça , cad ?
 


 
C'est pour itérer sur une collection: http://en.wikipedia.org/wiki/C%2B% [...] d_for-loop, un peu à la manière de boost::foreach


Message édité par Polo37 le 18-03-2009 à 09:40:41
n°1863504
weblook$$
Posté le 19-03-2009 à 12:48:48  profilanswer
 

Un Programmeur a écrit :


   
Il y a aussi un certain nombre de petites choses dont on parle moins.  Mais qui vont a mon avis avoir un effet plus grand sur la vie quotidienne du programmeur moyen.  Dans cette serie, ma favorite est certainement "auto", mais la possibilite d'avoir >> pour fermer deux templates ou la nouvelle syntaxe de for.


 
Dans le meme genre le keyword decltype va être très sympa ...


---------------

n°1863756
jesus_chri​st
votre nouveau dieu
Posté le 19-03-2009 à 18:19:00  profilanswer
 

auto et decltype ça va bien aider, surtout pour les templates. Par contre les move-semantics, en effet ça risque pas mal d'alourdir le langage pour pas grand chose.
 
Au passage, petites question qui me tulupine pour Taz et Joel :
si je fais ça :
 

Code :
  1. struct Toto
  2. {
  3.     Toto( int n ) : _n( n ) {}
  4.     Toto& Reference() { return *this; }
  5.     int _n;
  6. }
  7. Toto t( int n )
  8. {
  9.    return Toto( n );
  10. }
  11. void f1( Toto& t );
  12. void f2( Toto&& t );
  13. f1( t( 42 ) ); // marche pas
  14. f2( t( 42 ) ); // marche
  15. f1( t( 42 ).Reference() ); // marche


 
Le 3e appel n'est-il pas un bon remplacement pour la move-sémantic ?
On ne peut pas obtenir de ref d'une rvalue... sauf si on lui demande par une methode du genre Reference(), donc finalement je ne comprends pas trop pourquoi dès le départ les rvalues ne pouvaient pas être récupére en ref non-const.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5

Aller à :
Ajouter une réponse
 

Sujets relatifs
[C#, Résolu] UserControl, classes en propriété et code du concepteur.[C++-UML] logiciel gérant l'importation des sources
sudoku en C ![C] Parser un programme SAS
Signaux en CChiffrement. Quel bibliothèque (pour C#) ou comment utiliser gpg?
[C# + Access] Ajout, suppression et modifications des données[help] Problème Visual C++
iterator sur un taleau C[C#] Comparer les lignes de 2 fichiers txt
Plus de sujets relatifs à : C++ mauvais langage ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR