30

gon33 (./29) :
J'en utilise tous les jours au taf, ça marche du tonerre :-)
J'espère que t'auras jamais à utiliser un autre compilo que GCC alors ^^
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

31

Apparemment ça marche bien avec clang aussi.
Par contre, pour Visual C++ je suis pas si sûr...

32

VC++ 2010 n'est pas trop mauvais question standards tant que tu ne lui demandes pas de faire du C.
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

33

Il faut être masochiste pour utiliser (volontairement*) Visual C++. grin MinGW est beaucoup plus pratique.

* c'est-à-dire sans y être obligé par quelqu'un d'autre qui, lui, est masochiste grin … ou sadique gni
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

34

Comment tu peux comparer un IDE à des softs en ligne de commande, dont certains sont à la rue ? Ca n'a rien à voir...

35

Si tu veux un EDI, tu développes avec KDevelop 4 (Je précise "4" parce que tu aimes les versions obsolètes de KDE et parce que KDevelop 3 avait une interface bordélique.) sous un système civilisé et tu compiles avec cross-MinGW.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

36

Pour moi c'est utiliser KDevelop qui relève du masochisme, particulièrement sous Windows, ou le premier chalenge est de réussir à le compiler car il n'y a pas de binaire disponible.
Ensuite, il faut composer avec l'instabilité de la bête.
avatar

37

C'est pour ça que j'ai écrit "sous un système civilisé". tongue
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

38

KDevelop 4 crashe tous les 5 minutes sous Mint ou Debian. J'ai même un testcase en trois clic, always reproductible. J'ai reporté sur le forum le bug tracker, aucune suite.

39

Kevin Kofler (./37) :
C'est pour ça que j'ai écrit "sous un système civilisé". tongue

² gni

(Jamais eu de problèmes sous Fedora. tongue)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

40

Mon PP m'y a de nouveau fait penser, finalement j'ai pas mal fait évoluer la solution et j'ai un truc qui marche vraiment pas trop mal. J'ai implémenté les casts implicites correctement et en fin de compte je pense que c'est un bon compromis pour une lib (graphique dans mon cas) :
- Les références peuvent être créées implicitement, mais dans ce cas elles ne possèdent pas l'objet (ce n'est rien de plus qu'un pointeur au sens C++, avec la même syntaxe)
- Quand on initialise une référence si on veut qu'elle possède l'objet il faut appeler mkref. On n'a besoin de faire ça qu'avec un new.
- Les fonctions qui supportent la gestion de mémoire demandent des ref<Type> et stockent ça comme membres
- L'utilisateur final peut travailler avec des ref ou pas, c'est transparent. S'il veut qu'un objet créé soit automatiquement delete'é lorsqu'il n'est plus référencé, il appelle juste mkref et se sert du pointeur comme habituellement. Les ref's transformées en pointeur sont valides tant que la ref est référencée quelque part, ainsi comme pour la création classique d'objets c'est celui qui crée l'objet qui gère le cycle de vie. Ca signifie que si la référence est un membre de classe, on aura le même comportement que si un delete était appelé dans le destructeur.
void fonctionDeLaLib(ref<Truc> truc) {
}

ref<Truc> autreFonctionDeLaLib() {
    return mkref(new Truc());
}

void fonctionAMoi(Truc *t) {
}

void main() {
    Truc *sansGestionDeMemoire = new Truc();
    ref<Truc> avecGestionDeMemoire = mkref(new Truc());

    fonctionDeLaLib(sansGestionDeMemoire);
    fonctionDeLaLib(avecGestionDeMemoire);
    fonctionDeLaLib(mkref(new Truc());
    delete sansGestionDeMemoire;
    
    avecGestionDeMemoire = autreFonctionDeLaLib();
    fonctionAMoi(avecGestionDeMemoire);

    // Libère le contenu actuel de avecGestionDeMemoire et assigne un pointeur non géré
    avecGestionDeMemoire = new Truc();
    delete (Truc*) avecGestionDeMemoire;
}
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

41

C'est pas en train de devenir exactement une réimplémentation des unique_ptr ton truc ? grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

42

unique_ptr n'est pas transparent et est plus compliqué à utiliser. Mais ça s'en rapproche oui.
Le but est qu'on n'ait pas à se soucier de plus que -> tu transformes Truc * en ref<Truc> et tu fais mkref si tu veux qu'il soit libéré automatiquement quand tu ne t'en sers plus. unique_ptr ne répond pas à ce critère.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

43

Par "pas transparent", tu veux dire qu'il manque simplement un constructeur implicite ? Parce qu'au niveau syntaxe j'ai quand même du mal à voir en quoi c'est plus léger ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

44

L'absence de constructeur implicite est ennuyante oui (ça ne permet justement pas du tout d'écrire un code similaire au mien, et ça oblige tout le monde à utiliser des unique_ptr, alors que dans mon cas tu choisis : l'API te permet de le faire, mais si tu veux passer des pointeurs standard tu peux). Et pour le reste il faut passer par des std::move et ce n'est pas forcément clair pourquoi (je n'arrive plus à m'en rappeler justement grin).
Mais basiquement oui c'est similaire à unique_ptr, avec juste pour but d'être plus clair et simple à comprendre/utiliser.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

45

Tiens faut que je me mette à jour moi, j'en suis toujours à std::auto_ptr, j'ignorais que ça avait été mis obsolète et remplacé.

46

Truc intéressant, j'utilise actuellement Cocos2D-x, et une gestion de mémoire un peu similaire à celle d'Apple est utilisée, malgré le fait qu'il s'agisse de C++. En gros c'est assez joli parce que tu peux faire par exemple :
CCSprite* sprite = CCSprite::create("image.png");
// Pas besoin de le libérer, il le sera automatiquement, par contre si on l'ajoute quelque part il reste en mémoire
this->addChild(sprite, 0);

Je vous dirai ce que ça donne à l'usage, mais j'aime bien le paradigme smile
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

47

similaire à celle d'apple ? c'est pas exactement ce que fait java depuis toujours avec ses références classiques ?

48

Ça me paraît bizarre que ce soit faisable avec des pointeurs nus... Du moins, sans support additionnel du compilateur.
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

49

Zeph (./10) :
C'est le genre de choses qui s'implémente assez souvent pour un usage bien spécifique, mais l'utiliser absolument partout, je reste assez sceptique. Je serais curieux de voir un bench si tu fais un projet avec ça. Par contre comme ton implémentation n'est pas thread-safe ça va soit imposer un usage très limité, soit te demander des modifications importantes, soit avoir des performances assez catastrophiques. Dans tous les cas je parie sur le GC, personnellement smile

Je débarque un peu, mais à propos du GC : Apple a introduit un GC dans Objective-C, et l'ont déclaré obsolète en faveur de ce système par comptage de références, essentiellement pour des raisons de perfs (au moins dans des conditions de mémoire limitée, au hasard comme sur un iPhone). C'est en tout cas l'analyse que j'avais lue, je n'ai pas de chiffres à balancer, ni d'analyse de qualité sous la main (peut-être que le GC d'Objective-C était simplement pourri).
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

50

Un document de John Siracusa d'Arstechnica j'imagine
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

51

Tu peux déclarer tes propriétés comme thread safe (je ne sais plus si c'est le comportement par défaut, mais il me semble). Ca utilise des instructions atomiques, pas sûr que ce soit si horrible en termes de perfs.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

52

Brunni (./46) :
CCSprite* sprite = CCSprite::create("image.png");
C'est très vilain ça ^^ Ça rappelle les heures sombres des MFC.

53

En fait ce "constructeur" est auto-généré (avec le même genre de constructions que quand tu fais un Q_OBJECT). Il est possible de l'implémenter manuellement cela dit.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

54

Je serais curieux de connaître les raisons qui ont poussé à utiliser cette solution plutôt qu'un constructeur ordinaire, ceci dit ^^

55

La lib originale était écrite en Objective-C ^^ Ca permet de maintenir une partie de la facilité d'utilisation sans perdre atrocement en perfs. smile
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

56

Godzil (./50) :
Un document de John Siracusa d'Arstechnica j'imagine

Non, il ne me semble pas. Un blog sur le GC sur téléphones, plutôt.
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

57

avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

58

Arstechnica avait un très bon article la dessus mais j'arrive pas a remettre la main dessus..
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

59

avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

60

Zerosquare (./57) :
topics/108059-trolloscope-who-is-the-best/72#2159 ? cheeky

merci, c'est exactement ça ^^
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant