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

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  19183  19184  19185  ..  27185  27186  27187  27188  27189  27190
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°2103177
el muchach​o
Comfortably Numb
Posté le 24-09-2011 à 18:42:16  profilanswer
 

Reprise du message précédent :

mareek a écrit :

Je suis heureux que mon département soit si bien représenté au Senat:
http://www.nossenateurs.fr/gerard-collomb


[:implosion du tibia] Guérini est pas mal non plus, dans le genre.
Globalement, parmis les gros branleurs, il y a bcp  de socialistes.
Je me demande s'il est payé celui-la
 
Quand aux députés, parmis les cancres, on voit J-F Copé, Patrick Balkany et Arnaud Montebourg (1 seule apparition à l'assemblée !).

Message cité 1 fois
Message édité par el muchacho le 24-09-2011 à 19:06:25

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 24-09-2011 à 18:42:16  profilanswer
 

n°2103178
Profil sup​primé
Posté le 24-09-2011 à 18:42:43  answer
 

theShockWave a écrit :


Une erreur de design


 
Je sais pas, par rapport à quoi ?
Si c'est juste une question d'élégance, je refuse de me casser la tête pour faire jolie au yeux des poète.
 
Après si tu me dis que lorsque j'écris un programme avec un processus qui doit avoir une vue sur tout j'ai tout de même le choix, je veux bien voir comment tu fais.

Message cité 1 fois
Message édité par Profil supprimé le 24-09-2011 à 19:02:52
n°2103180
masklinn
í dag viðrar vel til loftárása
Posté le 24-09-2011 à 19:05:17  profilanswer
 

mareek a écrit :


tu peux expliquer ces concepts ?


1. Typestates

 

Le type system peut inclure des informations sur les états des objets (c'est une forme d'analyse du flux de données), cet état est représenté par des prédicats (des assertions) pouvant être vérifiés statiquement. Par exemple:

Code :
  1. class Test {
  2.    public static void main(String[] args) {
  3.        int i;
  4.        if (args.length > 0) {
  5.            i = args.length;
  6.        }
  7.        System.out.println(i);
  8.    }
  9. }


> javac Test.java
Test.java:7: variable i might not have been initialized
        System.out.println(i);
                           ^
1 error


dans Rust, c'est l'application du prédicat init (cet objet a-t-il été initialisé?), une variable n'a pas init dans ses typestates ne peut pas être utilisé. Naturellement, l'utilisateur du langage peut créer ses propres prédicats (ses propres états), et il y a une assertion (check) qui permet d'inclure une vérification runtime et inclue la donnée vérifiée dans le typestate du pointeur après cette assertion.

 

2. types uniques/pointeurs uniques

 

Rust utilise les typestates (spécifiquement le typestate init) pour s'assurer que certains pointeurs ne sont "vivants" que dans une scope à la fois (et donc garder une trace statique de la possession du pointeur): quand un pointeur unique est passé à un tiers (via un appel de fonction), sont typestate "init" est retiré dans la scope d'origine (et implicitement ajouté dans celle de destination), et il n'est possible de passer que des pointeurs uniques (ou des structures copiées) sur un canal entre deux "threads" rust, donc on s'assure que l'état n'est pas partagé.

 

Ça permet aussi d'allouer les objets associés à des pointeurs uniques sur une heap globale (de cette manière transférer l'objet revient à transférer le pointeur) tout en les désallouant dès qu'ils ne sont plus utilisés, c'est à dire dès qu'un pointeur unique utilisé dans une scope donnée n'est pas transféré avant la fin de la scope. En gros, ça se comporte comme une allocation sur stack pouvant être transférée de stack en stack, sans risque de leaker l'objet alloué.

Message cité 2 fois
Message édité par masklinn le 24-09-2011 à 19:06:34

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2103181
masklinn
í dag viðrar vel til loftárása
Posté le 24-09-2011 à 19:10:28  profilanswer
 

http://www.youtube.com/watch?v=k4wh4FnwiAg
http://i.imgur.com/eBkGU.jpg


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2103182
masklinn
í dag viðrar vel til loftárása
Posté le 24-09-2011 à 19:16:02  profilanswer
 

http://i.imgur.com/jTadP.jpg


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2103183
sligor
Posté le 24-09-2011 à 19:22:34  profilanswer
 

ce gaspillage de poitrine de porc  [:imnotgarbage:1]


---------------
qwerty-fr
n°2103184
vapeur_coc​honne
Stig de Loisir
Posté le 24-09-2011 à 19:33:04  profilanswer
 

boire un sky écossais de 14 ans avec du compté de 24 mois des chez mon fromager /producteur de maroilles au lait cru  
avant je prennais des chips avec une kro  
je m'urielise ? [:totoz]


---------------
marilou repose sous la neige
n°2103185
kadreg
profil: Utilisateur
Posté le 24-09-2011 à 19:34:08  profilanswer
 

le maroilles, c'est mainstream maintenant, tu aurais dit de gris de lille encore ...


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2103186
vapeur_coc​honne
Stig de Loisir
Posté le 24-09-2011 à 19:36:33  profilanswer
 

j'en ai aussi [:thalis]


---------------
marilou repose sous la neige
n°2103187
el muchach​o
Comfortably Numb
Posté le 24-09-2011 à 19:47:39  profilanswer
 

Andouilletes de Troyes et oignons à la poële ici :o


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 24-09-2011 à 19:47:39  profilanswer
 

n°2103188
kadreg
profil: Utilisateur
Posté le 24-09-2011 à 19:49:07  profilanswer
 

bavette d'aloyau et ... je sais pas encore :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2103189
kadreg
profil: Utilisateur
Posté le 24-09-2011 à 20:03:02  profilanswer
 


 
ca demande juste une quantité d'énergie absolument faramineuse. Une terraformation naturelle, par exemple celle des volcans, permet d'avoir une idée de l'énergie necessaire. Le mont saint helen, ou comment faire perdre 400m a une montagne de 2500m, c'est 400MT, soit 8 fois la plus grosse bombe atomique jamais produite :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2103190
Profil sup​primé
Posté le 24-09-2011 à 20:12:28  answer
 

kadreg a écrit :


 
ca demande juste une quantité d'énergie absolument faramineuse. Une terraformation naturelle, par exemple celle des volcans, permet d'avoir une idée de l'énergie necessaire. Le mont saint helen, ou comment faire perdre 400m a une montagne de 2500m, c'est 400MT, soit 8 fois la plus grosse bombe atomique jamais produite :o


 
Peut-être....
 
 
Prendre la BA pour exemple !  :sweat:  
 
 
Je parle pas de celle ci.... Elle s'est produite, elle se produit, que faire de plus ?

Message cité 1 fois
Message édité par Profil supprimé le 24-09-2011 à 20:12:44
n°2103191
masklinn
í dag viðrar vel til loftárása
Posté le 24-09-2011 à 20:39:39  profilanswer
 

kadreg a écrit :

ca demande juste une quantité d'énergie absolument faramineuse. Une terraformation naturelle, par exemple celle des volcans, permet d'avoir une idée de l'énergie necessaire. Le mont saint helen, ou comment faire perdre 400m a une montagne de 2500m, c'est 400MT, soit 8 fois la plus grosse bombe atomique jamais produite :o

 

Fig 4837: Jovalise existe dans une réalité parallèle sans rapport aucun avec celle dans laquelle il commente.

Message cité 1 fois
Message édité par masklinn le 24-09-2011 à 21:06:11

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2103192
Profil sup​primé
Posté le 24-09-2011 à 20:43:59  answer
 

masklinn a écrit :


Fig 4837: Jovalise existe dans une réalité parallèle sans rapport aucun avec celle dans laquelle il existe.


 
Moi j'ai buggé, je sais pas les autres....

n°2103193
mareek
Et de 3 \o/
Posté le 24-09-2011 à 20:49:30  profilanswer
 

el muchacho a écrit :

Quand aux députés, parmis les cancres, on voit J-F Copé, Patrick Balkany et Arnaud Montebourg (1 seule apparition à l'assemblée !).


Montebourg a une super excuse:
Il s'est fait élire au conseil général pour voir si le cumul des mandats était vraiment aussi intenable qu'il le pensait et ça a confirmé ses préjugés.

 

Ou alors il voulait plus de thunes [:cosmoschtroumpf]

 

C'est surtout un problème pour la maintenance. c'est une torture de devoir debugger un objet avec  500 méthodes et plusieurs milliers de lignes de code.

masklinn a écrit :


1. Typestates

 

Le type system peut inclure des informations sur les états des objets (c'est une forme d'analyse du flux de données), cet état est représenté par des prédicats (des assertions) pouvant être vérifiés statiquement. Par exemple:

Code :
  1. class Test {
  2.    public static void main(String[] args) {
  3.        int i;
  4.        if (args.length > 0) {
  5.            i = args.length;
  6.        }
  7.        System.out.println(i);
  8.    }
  9. }


> javac Test.java
Test.java:7: variable i might not have been initialized
        System.out.println(i);
                           ^
1 error


dans Rust, c'est l'application du prédicat init (cet objet a-t-il été initialisé?), une variable n'a pas init dans ses typestates ne peut pas être utilisé. Naturellement, l'utilisateur du langage peut créer ses propres prédicats (ses propres états), et il y a une assertion (check) qui permet d'inclure une vérification runtime et inclue la donnée vérifiée dans le typestate du pointeur après cette assertion.

 

2. types uniques/pointeurs uniques

 

Rust utilise les typestates (spécifiquement le typestate init) pour s'assurer que certains pointeurs ne sont "vivants" que dans une scope à la fois (et donc garder une trace statique de la possession du pointeur): quand un pointeur unique est passé à un tiers (via un appel de fonction), sont typestate "init" est retiré dans la scope d'origine (et implicitement ajouté dans celle de destination), et il n'est possible de passer que des pointeurs uniques (ou des structures copiées) sur un canal entre deux "threads" rust, donc on s'assure que l'état n'est pas partagé.

 

Ça permet aussi d'allouer les objets associés à des pointeurs uniques sur une heap globale (de cette manière transférer l'objet revient à transférer le pointeur) tout en les désallouant dès qu'ils ne sont plus utilisés, c'est à dire dès qu'un pointeur unique utilisé dans une scope donnée n'est pas transféré avant la fin de la scope. En gros, ça se comporte comme une allocation sur stack pouvant être transférée de stack en stack, sans risque de leaker l'objet alloué.


OK, merci :jap:


Message édité par mareek le 24-09-2011 à 20:54:02

---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2103198
el muchach​o
Comfortably Numb
Posté le 24-09-2011 à 21:58:49  profilanswer
 

P'tain les vidéos prises sur la lune, c'est assez génial.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2103200
kadreg
profil: Utilisateur
Posté le 24-09-2011 à 22:18:56  profilanswer
 

je veux aller sur la lune :sweat:


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2103201
Profil sup​primé
Posté le 24-09-2011 à 22:19:25  answer
 

kadreg a écrit :

je veux aller sur la lune :sweat:


 
 
Je veux en descendre ....  :lol:

n°2103203
ratibus
Posté le 24-09-2011 à 23:18:24  profilanswer
 

el muchacho a écrit :

P'tain les vidéos prises sur la lune, c'est assez génial.


Link ?


---------------
Mon blog
n°2103204
Jubijub
Parce que je le VD bien
Posté le 25-09-2011 à 00:25:55  profilanswer
 

Steak de filet de bœuf ultra fondant, avec sauce a l'echalotte et au vin rouge, avec une petite fondue de poireaux, suivi par un vacherin mont d'or avec pain de seigle aux noix, le tout arosé d'un petit malbec argentin pas mauvais

 

[:allah_4]


---------------
Jubi Photos : Flickr - 500px
n°2103205
Profil sup​primé
Posté le 25-09-2011 à 00:34:08  answer
 

masklinn a écrit :


Généralement ça s'écrit pas.


Code :
  1. with Ada.Command_Line;
  2. use Ada;


 
Essaie sans tu verra...

n°2103209
Profil sup​primé
Posté le 25-09-2011 à 06:15:24  answer
 

Bonjour.
 
Bien dormi ?
 
 
J'ai pas fermé l'oeil.
 
 
Prem's !

n°2103210
vapeur_coc​honne
Stig de Loisir
Posté le 25-09-2011 à 07:32:51  profilanswer
 

:/


---------------
marilou repose sous la neige
n°2103211
Profil sup​primé
Posté le 25-09-2011 à 07:54:46  answer
 

Je me régale....
 

prophet:/home/root/Warborg# ./obj/bin/xborg -n localhost
 
LOGON:    
 
LOGON:  
 
LOGON: help games
help not available.
LOGON: list games
Falken'S Maze
Black Jack
Gin Rummy
Hearts
Bridge
Checkers
Chess
Poker
Fighter Combat
Guerrila Engagement
Desert Warfare
Air-To-Ground Actions
Theaterwide Tactical Warfare
Theaterwide Biotoxic and Chemical Warfare
 
Global Thermonuclear War
LOGON: jovalise
 
PASSWORD:  
Greetings, Professor Falken.
 
Shall we play a game?


 
Viendez programmer Warborg avec Ada....
 
366 ligne pour faire ceci.


Message édité par Profil supprimé le 25-09-2011 à 07:56:53
n°2103212
Profil sup​primé
Posté le 25-09-2011 à 07:55:06  answer
 

Bonjour vapeur_$

n°2103213
kadreg
profil: Utilisateur
Posté le 25-09-2011 à 08:07:29  profilanswer
 

joshua \o/


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2103214
Profil sup​primé
Posté le 25-09-2011 à 08:19:11  answer
 

Download Warborg-1.0.0.tar.gz and test it on 80.15.188.151
 

prophet:/home/root/Warborg# ./obj/bin/xborg  
usage : ./obj/bin/xborg  -a IP | -n Hostname


 
Please.... !  :jap:


Message édité par Profil supprimé le 25-09-2011 à 08:20:15
n°2103215
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 25-09-2011 à 08:40:53  profilanswer
 

masklinn a écrit :


2. types uniques/pointeurs uniques
 
Ça permet aussi d'allouer les objets associés à des pointeurs uniques sur une heap globale (de cette manière transférer l'objet revient à transférer le pointeur) tout en les désallouant dès qu'ils ne sont plus utilisés, c'est à dire dès qu'un pointeur unique utilisé dans une scope donnée n'est pas transféré avant la fin de la scope. En gros, ça se comporte comme une allocation sur stack pouvant être transférée de stack en stack, sans risque de leaker l'objet alloué.


 
Comme en c++ quoi  [:raph0ux]


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2103216
el muchach​o
Comfortably Numb
Posté le 25-09-2011 à 09:36:40  profilanswer
 


Arte hier soir :o
"In the shadow of the moon"
Un film qui n'a même pas rapporté un million d'euros au box office américain d'après rotten tomatoes :sweat:


Message édité par el muchacho le 25-09-2011 à 09:54:06

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2103217
masklinn
í dag viðrar vel til loftárása
Posté le 25-09-2011 à 09:39:17  profilanswer
 

Xavier_OM a écrit :

Comme en c++ quoi  [:raph0ux]


Mais prominent, facile à utiliser, central au langage et qui ressemble à quelque chose. Après tout,

Citation :

Within C++, there is a much smaller and cleaner language struggling to get out.

Message cité 1 fois
Message édité par masklinn le 25-09-2011 à 09:40:04

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2103219
el muchach​o
Comfortably Numb
Posté le 25-09-2011 à 10:19:35  profilanswer
 

Facile à utiliser, c'est vite dit. Le problème avec les pointeurs qui se baladent, c'est le cycle de vie des objets sous-jacents. Tant qu'on reste dans un scope et qu'on fait du RAII, c'est facile, l'objet est créé au début du scope, et détruit en sortie. Dès qu'il sort du scope, il faut réfléchir à quand, comment et par qui il va être détruit. Quelques fois, c'est pas évident, parce qu'il faut en principe faire l'exhaustivité des cas possibles. Dans un logiciel très complexe, c'est vite un gros casse-tête. Si on en oublie un, on a soit un pointeur nul, soit un memleak. A part à l'aide d'un garbage collector, qui sert justement à ça, je ne vois pas trop comment le langage permet de s'économiser cette réflexion.

 

Sinon, je ne m'imaginais pas que l'Enterprise était plus vieux que Spoutnik. Et mine de rien, on a du mal à imaginer qu'entre le premier homme dans l'espace, et le premier homme sur la lune, il s'est passé seulement 8 ans...

 

Et je vois que je suis vraiment pas un Star Trek geek. Je ne connais que l'époque Kirk/Spock, alors que la next gen date déjà presque 25 ans.

 

http://i.space.com/images/i/11934/i02/star-trek-45-years-110908e-02.jpg?1315418906

Message cité 3 fois
Message édité par el muchacho le 25-09-2011 à 10:33:54

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2103220
masklinn
í dag viðrar vel til loftárása
Posté le 25-09-2011 à 10:33:03  profilanswer
 

el muchacho a écrit :

Facile à utiliser, c'est vite dit. Le problème avec les pointeurs qui se baladent, c'est le cycle de vie des objets sous-jacents. Tant qu'on reste dans un scope et qu'on fait du RAII, c'est facile, l'objet est créé au début du scope, et détruit en sortie. Dès qu'il sort du scope, il faut réfléchir à quand, comment et par qui il va être détruit. Quelques fois, c'est pas évident, parce qu'il faut en principe faire l'exhaustivité des cas possibles. Si on en oublie un, on a soit un pointeur nul, soit un memleak. A part à l'aide d'un garbage collector, qui sert justement à ça, je ne vois pas trop comment le langage permet de s'économiser cette réflexion.


C'est impressionnant, t'as réussi à rien suivre du tout.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2103221
el muchach​o
Comfortably Numb
Posté le 25-09-2011 à 10:38:38  profilanswer
 

masklinn a écrit :


C'est impressionnant, t'as réussi à rien suivre du tout.


Ca doit être parce que tes explications sont comme d'habitude nulles.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2103222
masklinn
í dag viðrar vel til loftárása
Posté le 25-09-2011 à 10:41:46  profilanswer
 

el muchacho a écrit :


Ca doit être parce que tes explications sont comme d'habitude nulles.


Dans ce cas tu demandes des explications plus claires en disant que t'as pas compris, au lieu de te replier sur ton comportement d'idiot du village.

 

(mais si mareek a pu comprendre, je pense que le problème est plus proche de ton côté des intertubes que tu mien, sans vouloir être méchant)

Message cité 2 fois
Message édité par masklinn le 25-09-2011 à 10:46:45

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2103223
mareek
Et de 3 \o/
Posté le 25-09-2011 à 10:41:57  profilanswer
 

el muchacho a écrit :

Facile à utiliser, c'est vite dit. Le problème avec les pointeurs qui se baladent, c'est le cycle de vie des objets sous-jacents. Tant qu'on reste dans un scope et qu'on fait du RAII, c'est facile, l'objet est créé au début du scope, et détruit en sortie. Dès qu'il sort du scope, il faut réfléchir à quand, comment et par qui il va être détruit. Quelques fois, c'est pas évident, parce qu'il faut en principe faire l'exhaustivité des cas possibles. Si on en oublie un, on a soit un pointeur nul, soit un memleak. A part à l'aide d'un garbage collector, qui sert justement à ça, je ne vois pas trop comment le langage permet de s'économiser cette réflexion.


Si le pointeur ne peut apparaitre que dans un scope c'est au contraire très facile de savoir quand le détruire: au moment où il n'appartient à plus aucun scope.

el muchacho a écrit :

Sinon, je ne m'imaginais pas que l'Enterprise était plus vieux que Spoutnik. Et mine de rien, on a du mal à imaginer qu'entre le premier homme dans l'espace, et le premier homme sur la lune, il s'est passé seulement 8 ans... quand on pense qu'il nous faut le double pour construire une ligne de métro...

 

http://i.space.com/images/i/11934/ [...] 1315418906


relis avec le doigt, le premier pilote non retenu de star trek a été tourné en 1964. la chronologie commence avantspoutnik parce que son auteur a décidé d'y ajouter un film qui n'a aucun rapport avec star trek


Message édité par mareek le 25-09-2011 à 10:43:15

---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2103224
mareek
Et de 3 \o/
Posté le 25-09-2011 à 10:49:36  profilanswer
 

el muchacho a écrit :


Ca doit être parce que tes explications sont comme d'habitude nulles.


Quand masklinn fait l'effort de retenir sa condescendance naturelle, je trouve que ses explication sont claires et compréhensibles [:cosmoschtroumpf]
 

Spoiler :

Dommage que le naturel revienne souvent au galop après ça


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2103226
masklinn
í dag viðrar vel til loftárása
Posté le 25-09-2011 à 11:12:19  profilanswer
 

mareek a écrit :

Dommage que le naturel revienne souvent au galop après ça


 [:bromure de cheval:5]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2103227
Lam's
Profil: bas.
Posté le 25-09-2011 à 11:17:43  profilanswer
 

mareek a écrit :


Quand masklinn fait l'effort de retenir sa condescendance naturelle, je trouve que ses explication sont claires et compréhensibles [:cosmoschtroumpf]

 
Spoiler :

Dommage que le naturel revienne souvent au galop après ça



Nietzsche - toujours- a parlé de vous une fois. Oh, pas longtemps. Il a juste dit un mot en fait, un seul. Mais bon, telle est la puissance de sa pensée...
Minderwertigkeitskomplex


---------------
✌ Please consider the environment before printing this post. ✌
n°2103228
el muchach​o
Comfortably Numb
Posté le 25-09-2011 à 11:18:02  profilanswer
 

masklinn a écrit :


Dans ce cas tu demandes des explications plus claires en disant que t'as pas compris, au lieu de te replier sur ton comportement d'idiot du village.

 

(mais si mareek a pu comprendre, je pense que le problème est plus proche de ton côté des intertubes que tu mien, sans vouloir être méchant)


Je ne vois pas ce que tes pointeurs uniques ont de différent des auto_ptr de C++ (respectivement unique_ptr de C++11). Et les auto_ptr, ça ne fait pas l'économie de la réflexion sur le cycle de vie dont je parle, puisqu'en transférant l'ownership, tu es obligé de te poser la question de qui va détruire l'objet. Qu'est-ce que j'ai raté dans ton raisonnement ?

Message cité 1 fois
Message édité par el muchacho le 25-09-2011 à 11:18:28

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2103229
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 25-09-2011 à 11:22:45  profilanswer
 

masklinn a écrit :


Mais prominent, facile à utiliser, central au langage et qui ressemble à quelque chose.


 :sarcastic:  
 

el muchacho a écrit :

Facile à utiliser, c'est vite dit. Le problème avec les pointeurs qui se baladent, c'est le cycle de vie des objets sous-jacents. Tant qu'on reste dans un scope et qu'on fait du RAII, c'est facile, l'objet est créé au début du scope, et détruit en sortie. Dès qu'il sort du scope, il faut réfléchir à quand, comment et par qui il va être détruit. Quelques fois, c'est pas évident, parce qu'il faut en principe faire l'exhaustivité des cas possibles. Si on en oublie un, on a soit un pointeur nul, soit un memleak. A part à l'aide d'un garbage collector, qui sert justement à ça, je ne vois pas trop comment le langage permet de s'économiser cette réflexion.


 
En C++ tu as quelques trucs pour gérer correctement ta mémoire sans garbage collection :
 
 
La durée de vie de gadget est celle de ton instance widget :

Code :
  1. class Widget {
  2. private:
  3.     Gadget g;
  4. };


 
 
 
 
La durée de vie de gadget est celle de ton instance de widget, mais tu partages ton gadget entre différents objets. Tu peux utiliser un shared pointer pour avoir un comptage de référence automatique : la libération se fera automatiquement quand le compteur sera à 0, quand mourra le dernier objet qui possédait une référence vers ce gadget :

Code :
  1. class Widget
  2. private:
  3.     shared_ptr<Gadget> g;
  4. }


 
Presque comme shared_ptr, tu partages une référence entre plusieurs classes, sauf que les weak_ptr ne comptent pas dans le comptage de référence automatique mais peuvent tester si la libération a déjà été faite. Pas mal pour éviter les cycles si tu veux vraiment qu'un objet A possède B et que B possède A.

Code :
  1. class Gadget {
  2. private:
  3.     weak_ptr<Widget> parent;
  4. }


Exemple :

Code :
  1. shared_ptr<Widget> w = parent.lock(); // toujours là ?
  2. if (w) {
  3. // on ne passe jamais ici si parent a été nettoyé, cad quand plus personne ne détient un shared_ptr vers parent.
  4. }


Tout ça type_safe et sans avoir à faire des trucs à la main du genre foutre soi-même NULL dans un Widget* ou stocker des flags 'disposable' pour savoir si oui ou non l'instance existe toujours.
 
 
À noter une petite variante très C++ : unique_ptr. C'est un peu comme un shared_ptr mais quand tu sais qu'un et un seul truc sera responsable de ton objet. Si node est le seul à posséder ses enfants, et qu'il ne partage ça avec personne, tu peux utiliser unique_ptr et c'est un peu mieux niveau perf qu'un shared_ptr partagé par une seule instance.

Code :
  1. class Node {
  2. private:
  3.     vector< unique_ptr<Node> > children;
  4. }


Mais globalement c'est pas très différent.
 
 
 
Bref si tu construits proprement ton truc, tu ne risques pas trop de te demander "est-ce que je dois faire delete ou est-ce que c'est quelqu'un d'autre qui s'en charge ?". Au final tu écris très peu de delete d'ailleurs  [:spamafote] Ton vrai problème commence quand tu tombes sur du C++ pensé comme du C (et c'est pas si rare) blindé de new/delete "kivonbien" je trouve :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  19183  19184  19185  ..  27185  27186  27187  27188  27189  27190

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)