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

 


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

C++ mauvais langage ?

n°1872505
el muchach​o
Comfortably Numb
Posté le 13-04-2009 à 19:00:42  profilanswer
 

Reprise du message précédent :
Ben je pense qu'ils ont une idée de la façon dont les features sont implémentables, sinon on peut parfaitement définir des features qui sont impossibles à implémenter. :D
 
A mon avis, les compilos n'iront pas plus vite, ne serait-ce que parce que la syntaxe ne sera pas franchement simplifiée par rapport à la syntaxe actuelle.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 13-04-2009 à 19:00:42  profilanswer
 

n°1872509
Joel F
Real men use unique_ptr
Posté le 13-04-2009 à 19:15:10  profilanswer
 

la synatxe c'est peanuts. Ce qui coute c'ets les niveau de name lookup recursif.
Par exemple , sous Visual, int* et add_pointer<int>::type sont stockées comme 2 types différents et reliés via une table multi-entrées. DOnc un is_same<int*,add_pointer<int>::type>::type mets plus de temps à se resoudre que sous gcc. La syntaxe c'est trashé en qqs millisecondes alros que la resolutino de nom c'ets super chiant.

n°1872512
Un Program​meur
Posté le 13-04-2009 à 19:21:40  profilanswer
 

0x90 a écrit :

Je sais plus si j'avais posé la question ici, mais à votre avis avec l'ajout de toutes ces nouvelles features, on devrait plutôt voir une augmentation ou une réduction des temps de compilation ?


 
A mon avis une augmentation (sauf peut-être dans les cas où on utilise des moyens coûteux pour contourner l'absence d'une possibilité).
 

el muchacho a écrit :

Ben je pense qu'ils ont une idée de la façon dont les features sont implémentables


 
Ben oui.  Et le fait qu'une des deux propositions sur les concepts avait un prototype a joué un rôle majeur dans le fait que ce soit la proposition qui ait été choisie; et des choses difficiles/coûteuses en calcul dans ce prototype ont été refusées pour cette raison, même si des approches alternatives sans ces inconvénients existaient.  Et ce n'est pas la seule chose pour laquelle des prototypes ont joué un rôle.

n°1872530
Taz
bisounours-codeur
Posté le 13-04-2009 à 20:45:35  profilanswer
 

Un Programmeur a écrit :


 
A mon avis une augmentation (sauf peut-être dans les cas où on utilise des moyens coûteux pour contourner l'absence d'une possibilité).
 

Ca dépend. T'as des cas extrêmes comme les variadic ou tu peux remplacer des bidouilles template exponentielles (genre 2**N déclarations pour N paramètres) par un truc linéaire.
 
Mais bon suffit de comparer le temps de compilation d'un projet avant et après boost.format et là tu pleures. Sur un projet j'ai même était jusqu'à wrapper boost.format (truc bidon pour pas avoir à include boost, construire le formateur inline + 4/5 définitions operatorX(my_wrapper, my_type)) tellement ça bouffer en compilation et en volume de code objet.
(Dire qu'on me vendait ça me disant même "ouah la déduction de type statique ça permet de savoir à la compilation quel opérateur utiliser et donc d'avoir des IO plus performantes" ).

n°1872537
el muchach​o
Comfortably Numb
Posté le 13-04-2009 à 21:20:55  profilanswer
 

Ca me rappelle que quand j'ai voulu compiler FreeFEM++, j'ai cru un moment que g++ avait planté ou était parti en boucle infini: il y a un fichier qui prenait une demi-heure à compiler sur mon ancien PC.

Message cité 1 fois
Message édité par el muchacho le 13-04-2009 à 21:28:50

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°1872543
theshockwa​ve
I work at a firm named Koslow
Posté le 13-04-2009 à 21:58:30  profilanswer
 

Un Programmeur a écrit :


 
A mon avis une augmentation (sauf peut-être dans les cas où on utilise des moyens coûteux pour contourner l'absence d'une possibilité).
 


 
Intuitivement, j'ai envie de dire que ca dépendra du projet. Quand je vois -à mon boulot- comme les temps de compilations sont intimement liées à la vitesse du disque et quand je pense à l'utilisation régulières de templates issus de la stl qu'on fait, j'ai bon espoir de voir le temps de compilation diminuer grâce aux templates extern ...  [:jagstang]


---------------
last.fm
n°1872547
Taz
bisounours-codeur
Posté le 13-04-2009 à 22:11:48  profilanswer
 

el muchacho a écrit :

Ca me rappelle que quand j'ai voulu compiler FreeFEM++, j'ai cru un moment que g++ avait planté ou était parti en boucle infini: il y a un fichier qui prenait une demi-heure à compiler sur mon ancien PC.


Ah ce bon vieux g++, quand t'arrives à toucher le giga de mémoire, tu deviens un homme

n°1872548
Taz
bisounours-codeur
Posté le 13-04-2009 à 22:12:49  profilanswer
 

theshockwave a écrit :

 

Intuitivement, j'ai envie de dire que ca dépendra du projet. Quand je vois -à mon boulot- comme les temps de compilations sont intimement liées à la vitesse du disque et quand je pense à l'utilisation régulières de templates issus de la stl qu'on fait, j'ai bon espoir de voir le temps de compilation diminuer grâce aux templates extern ...  [:jagstang]


La j'ai envie de dire: rajoute de la RAM, fais du g++ -pipe et ça touchera plus ton disque.
Et avec du pch (prise de tête mais bon), ça gagne quand même pas mal; Dernièrement ça me faisait un beau PCH de 70Mo, c'est quand meme pas rien.

Message cité 1 fois
Message édité par Taz le 13-04-2009 à 22:13:41
n°1872725
Glock 17Pr​o
Posté le 14-04-2009 à 11:56:07  profilanswer
 

le prochain visual supportera en partie le 0x si je me trompe pas, donc on va peut être dans la situation, où on aura des compilo le supportant partiellement et une norme toujours pas sortie :s

n°1872734
sligor
Posté le 14-04-2009 à 12:01:05  profilanswer
 

Joel F a écrit :

D on en reparle quand le compilateur arrivera à compiler les exemples qui viennent avec lui et que phobos commencera à ressembler à une vrai bibliothèque utilisable.


mais en dehors de l'implémentation, la syntaxe du langage est quand même attrayante :)

mood
Publicité
Posté le 14-04-2009 à 12:01:05  profilanswer
 

n°1872770
Joel F
Real men use unique_ptr
Posté le 14-04-2009 à 13:22:50  profilanswer
 

sligor a écrit :


mais en dehors de l'implémentation, la syntaxe du langage est quand même attrayante :)


Clairement, j'attends avec imaptience un truc vraiment stable.

n°1872785
Glock 17Pr​o
Posté le 14-04-2009 à 14:13:35  profilanswer
 

ça donnera rien ce langage

n°1872786
BenO
Profil: Chercheur
Posté le 14-04-2009 à 14:16:18  profilanswer
 

comme ta vie  [:cerveau manust]


---------------
Python Python Python
n°1872787
Glock 17Pr​o
Posté le 14-04-2009 à 14:17:30  profilanswer
 

ok le GEEK retourne dans ta grotte

n°1872889
Modération
Posté le 14-04-2009 à 17:06:43  answer
 

On se calme.

n°1872985
Glock 17Pr​o
Posté le 14-04-2009 à 20:20:00  profilanswer
 

:ange:

n°1873081
theshockwa​ve
I work at a firm named Koslow
Posté le 15-04-2009 à 09:11:50  profilanswer
 

Taz a écrit :


La j'ai envie de dire: rajoute de la RAM, fais du g++ -pipe et ça touchera plus ton disque.
Et avec du pch (prise de tête mais bon), ça gagne quand même pas mal; Dernièrement ça me faisait un beau PCH de 70Mo, c'est quand meme pas rien.


 
merci pour l'indication du -pipe, je ne connaissais pas. J'ai regardé brièvement, mais je ne vois pas d'option équivalente sous Visual Studio, mais ca nous servira probablement pour les plateformes où on a gcc :)
 
Edit : En fait, non, c'est inapplicable dans mon cas ... donc j'attends toujours cette petite évolution avec imaptience ...


Message édité par theshockwave le 16-04-2009 à 19:13:33

---------------
last.fm
n°1874041
Glock 17Pr​o
Posté le 16-04-2009 à 18:16:50  profilanswer
 

ça sert à quoi boost.bind???

n°1874100
Joel F
Real men use unique_ptr
Posté le 16-04-2009 à 21:24:24  profilanswer
 

à construire une lambda expression à partir d'une fonction

n°1874106
Glock 17Pr​o
Posté le 16-04-2009 à 22:07:38  profilanswer
 

mais les lambda expression, ça n'est justement pas utiliser en lieu et place des fonctions ? du moins c'est ce que je pensais, et si oui quel peut être l'intérêt de construire une lambda expression à partir d'une fonction ?

n°1874117
Joel F
Real men use unique_ptr
Posté le 16-04-2009 à 22:59:24  profilanswer
 

Citation :


A bind expression delays the call of a function.  


 
En gros :
 

Code :
  1. bind(cos, _1)


 
cree un objet fonction qui contient tout ce qui faut pour appeler cos plus tard.

n°1874143
Glock 17Pr​o
Posté le 17-04-2009 à 00:26:40  profilanswer
 

ok j'y vois un peu plus clair thx
 
 
 
/!\ _ EDIt _  Mais concrètement dans quel contexte ça s'utilise, à quel moment c'est indispensable ou fort utile ? _ EDIt _ /!\


Message édité par Glock 17Pro le 18-04-2009 à 01:35:21
n°1874596
Glock 17Pr​o
Posté le 18-04-2009 à 01:50:58  profilanswer
 

dans ce lien il est fait mention d'une histoire de changed arity

Code :
  1. The Bind library creates function objects that bind to a function (free function or member function). Rather than supplying all of the arguments to the function directly, arguments can be delayed, meaning that a binder can be used to create a function object with changed arity (number of arguments) for the function it binds to, or to reorder the arguments any way you like.


 
ça correspond à quoi au juste, enfin une fonction ça à un nombre fixe d'argument (bon ok à part le va_arg du C) donc ça me laisse bien perplexe....
ça permets d'utiliser un seul function object pour pointer sur toute une famille de fonction ? c'est à dire un ensemble de fonction ayant le même nom mais un nombre d'arguement différent ?


Message édité par Glock 17Pro le 18-04-2009 à 01:58:51
n°1874602
Joel F
Real men use unique_ptr
Posté le 18-04-2009 à 07:34:06  profilanswer
 

deja fait un topic à part.
 
La changement d'arité correspondt soit à une curryfication soit à une decurryfication.
 
Soit f(int a, int b) une fonction binaire.
bind( f, _1, 5 ) genere une fonction paresseuse g tel que :
g(x) = f(x,5);
 
goto un tutoriel sur la programmation fonctionelle :o

n°1874634
Glock 17Pr​o
Posté le 18-04-2009 à 12:08:35  profilanswer
 

d'acc merci, je savais pas que le C++ pouvait supporter ce paradigme de programmation


Message édité par Glock 17Pro le 18-04-2009 à 12:11:21
n°1874652
jesus_chri​st
votre nouveau dieu
Posté le 18-04-2009 à 13:03:06  profilanswer
 

c'est pas vraiment le C++, c'est la lib boost/bind.
En STL c'est limité à passer d'arité 2 à 1 (std::bind2nd, std::bind1st).
 
Pour ce qui est de la norme et du compilateur, de nombreux ajouts de C99 étaient déjà supportés par les compilos avant 99, surtout sur GCC. Ca dépend surtout de la complexité de cet ajout et de son utilisation. Une fonction standard à ajouter, c'est simple, les templates variadics ou les concepts, c'est plus dur

n°1874921
Glock 17Pr​o
Posté le 19-04-2009 à 17:04:09  profilanswer
 

pour clore le débat sur boost.bind (vu que c'est vrai que le topic est pas particulièrement dédiée à ça) cf un lien qu'explique un peu façon bind pour les nul mais qui à le mérite de poser les bases pour quelqu'un qui découvre bind :
http://www.developpez.net/forums/d [...] oost-bind/

n°1874922
Joel F
Real men use unique_ptr
Posté le 19-04-2009 à 17:20:57  profilanswer
 

developpez.netG   [:sadnoir]


Message édité par Joel F le 19-04-2009 à 17:21:03
n°1874923
Glock 17Pr​o
Posté le 19-04-2009 à 17:30:30  profilanswer
 

oui je ss d'accord avec toi, moi non plus je suis pas fan de ce site, mais l'intérêt c'est qu'il présente beaucoup de sujet de manière très basique, et ça permets d'avoir une première approche de notions plus ou moins complexes, comme ça pour la suite de l'apprentissage d'une notion ou d'un concept on sait un peu plus où on va,car perso la doc de bind sur le site de boost m'a apportée beaucoup plus de questions que de réponses


Message édité par Glock 17Pro le 19-04-2009 à 17:31:39
n°1874926
Joel F
Real men use unique_ptr
Posté le 19-04-2009 à 17:59:57  profilanswer
 

le gars me fait un peu pitié à dire ouais y a ce qui faut dans  boost mais nonon je veut pas de dependances :€

n°1874971
Glock 17Pr​o
Posté le 19-04-2009 à 21:19:32  profilanswer
 

D'ailleurs boost.function/bind sera intégré tel quel dans 0x ?

n°1874972
Joel F
Real men use unique_ptr
Posté le 19-04-2009 à 21:22:24  profilanswer
 

ca habitera dans std::tr1 mais de tete oui. En general, les lib boost de "future compatibility" suivent au mieux l'interface préconisée par le standard

n°1877718
Glock 17Pr​o
Posté le 25-04-2009 à 14:39:36  profilanswer
 

j'ai du mal à voir la place de std::move() dans les nouvelles features de move semantic et de perfect forwarding, ça servira à quoi ?


Message édité par Glock 17Pro le 25-04-2009 à 14:43:34
n°1877720
masklinn
í dag viðrar vel til loftárása
Posté le 25-04-2009 à 14:45:09  profilanswer
 

Joel F a écrit :

La changement d'arité correspondt soit à une curryfication soit à une decurryfication.


Non, le changement d'arité (en tout cas avec les exemples de bind postés ici) correspond à de l'application partielle. L'application partielle est triviale à faire avec des fonctions currifiées (ou schönfinkelisées, certains préfèrent), mais c'est pas la même chose :o


Message édité par masklinn le 25-04-2009 à 14:50:41

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1877771
Joel F
Real men use unique_ptr
Posté le 25-04-2009 à 19:48:12  profilanswer
 

[:aloy] merci je m'embrouille tout le temps

n°1877926
Glock 17Pr​o
Posté le 26-04-2009 à 15:55:47  profilanswer
 

Quelqu'un à des infos sur ce qui sera inclue dans le tr2 ?

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5
Page Suivante

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