Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Implémentation du C++11 ?  (Lu 11697 fois)

0 Membres et 1 Invité sur ce sujet

rafoudiablol

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
Re : Implémentation du C++11 ?
« Réponse #15 le: Avril 29, 2013, 01:23:37 pm »
Oui c'est pour ça que les libs statiques sont distribuée pour les différents compilos.

Donc serait il possible de passer la compilation SFML au C++11 ?
On pourrait appliquer l'idée en faisant attention à tout ça ;)

PS: faute de frappe dans le précédent post, *dans et non "sans".

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Implémentation du C++11 ?
« Réponse #16 le: Avril 29, 2013, 01:43:44 pm »
Citer
Donc serait il possible de passer la compilation SFML au C++11 ?
C'est pas "passer la compilation SFML au C++11", mais "ajouter conditionnellement des fonctionnalités C++11 à SFML" ;)

Quant à la réponse à ta question, elle se trouve dans le tout premier message que j'ai posté dans ce fil de discussion.
Laurent Gomila - SFML developer

rafoudiablol

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
Re : Implémentation du C++11 ?
« Réponse #17 le: Avril 29, 2013, 01:55:14 pm »
Ok si j'ai bien compris les nouvelles fonctionnalités devront être ajoutées dans les headers, du moims le code "externe" de la SFML
Merci ;)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Implémentation du C++11 ?
« Réponse #18 le: Avril 29, 2013, 02:12:26 pm »
Citer
Ok si j'ai bien compris les nouvelles fonctionnalités devront être ajoutées dans les headers
Non pas spécialement :P

Tout ce qu'il y a à retenir de ma "réponse" c'est que la tâche est créée, ce sera donc fait dans un futur plus ou moins proche. Pour ce qui est des détails, c'est un peu prématuré pour en discuter. Mais typiquement, si tu regardes ce qui est dit dans la tâche, cela consistera en majorité (si ce n'est en totalité) en l'ajout de fonctions prenant en paramètres ou retournant des types spécifiques au C++11.
Laurent Gomila - SFML developer

rafoudiablol

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
Re : Implémentation du C++11 ?
« Réponse #19 le: Avril 29, 2013, 07:44:02 pm »
Les moves constructors seraient d'une grande utilité (une fois qu'on commence à les utiliser on s'en passe plus ;) ), et assez facile à implémenter.

Je n'ai pas vu de pull request concernant le C++11, il pourrait être sympa d'essayer de commencer sans l'y intégrer tout de suite dans la SFML :)

Aucun rapport, mais bravo pour le nouveau site de la SFML  :D
« Modifié: Avril 29, 2013, 07:48:29 pm par rafoudiablol »

Lynix

  • Sr. Member
  • ****
  • Messages: 403
    • Voir le profil
Re : Re : Implémentation du C++11 ?
« Réponse #20 le: Avril 29, 2013, 09:51:52 pm »
Lynix, ton problème était un bug de quel ordre: Corruption de la mémoire ou tout simplement les appels de mauvaises fonctions ? ça mérite des tests tout ça ;)
Mais il n'y a pas une compatibilité ascendante garantie par la norme entre les différentes versions du C++ ?

J'avais droit aux deux, la mémoire était corrompue et je me retrouvais dans une méthode que je n'avais jamais appelée, je n'avais pas fait le lien immédiatement donc j'ai passé des heures à m'arracher les cheveux pour comprendre ce qu'il se passait.

Pour la compatibilité ascendante, Laurent y a déjà répondu, c'est uniquement syntaxique, le grand reproche que je fais au C++ est de ne pas avoir d'ABI standardisée

Eroy

  • Jr. Member
  • **
  • Messages: 60
    • Voir le profil
    • E-mail
Re : Implémentation du C++11 ?
« Réponse #21 le: Avril 30, 2013, 01:10:37 am »
Afin de pouvoir utiliser les Vector en atomic j'ai dût les rendre POD, je pense que c'est une modification assez indispensable pour une adaptation c++11. ^^

//    Vector2();
    Vector2() = default;

    Vector2(T X, T Y);

...

//    T x; ///< X coordinate of the vector
//    T y; ///< Y coordinate of the vector

    T x = 0; ///< X coordinate of the vector
    T y = 0; ///< Y coordinate of the vector

rafoudiablol

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
Re : Implémentation du C++11 ?
« Réponse #22 le: Mai 01, 2013, 01:30:21 pm »
Ajouter conditionnellement le support du C++11 ? Mais donc la sfml restera compilée en C++04.
Donc les ajouts se situeront au niveau des headers :)
Ou alors rajouter des sources qui seront compilées dans le code client, mais ça ne serait pas très élégant.


Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Implémentation du C++11 ?
« Réponse #23 le: Mai 01, 2013, 02:13:26 pm »
Mais non, on peut très bien avoir du code C++11 compilé dans les binaires.
Laurent Gomila - SFML developer

rafoudiablol

  • Newbie
  • *
  • Messages: 31
    • Voir le profil
Re : Implémentation du C++11 ?
« Réponse #24 le: Mai 02, 2013, 12:07:25 am »
Donc ça reviendrait à compiler la SFML en C++11, sauf si tu veux distribuer des binaires spécifiques à son support :P

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Implémentation du C++11 ?
« Réponse #25 le: Mai 02, 2013, 08:28:12 am »
Citer
Donc ça reviendrait à compiler la SFML en C++11
Ca ne revient à rien du tout. Les compilos qui ont C++11 activé par défaut auront des binaires SFML avec les fonctions C++11, les autres auront des binaires sans.
Laurent Gomila - SFML developer

germinolegrand

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : Implémentation du C++11 ?
« Réponse #26 le: Mai 13, 2013, 01:31:43 am »
Autant te mettre au courant tant que c'est chaud, je suis tombé hier (et en fait ça m'a pris plus de 12h de debug, j'y ai passé ma nuit bref j'en passe et des meilleures) sur un bug des compilos g++ et VS (seul clang a corrigé ce bug apparemment), doublé d'une défection de la norme C++11. Autant dire que je n'ai pas rigolé du tout.

Décidément je martyrise ce pauvre sf::Packet, et il y a une chose qu'il sera nécessaire de rajouter afin de rendre le code à la fois plus simple à l'utilisation et surtout moins buggé.

https://github.com/germinolegrand/SFML/commit/7515b960e95d6ebfd759d287f91e2012efdfefd4

Ce commit règle le problème de la sérialisation des enums.

(attention, j'ai bidouillé la classe sf::Packet par ailleurs, seul le contenu de ce commit est exploitable dans la SFML officielle)

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

Autre question, comment peut-on faire un pull lié au C++11 ? faut-il le nommer d'une façon particulière ? Y a-t-il de la compilation conditionnelle à mettre en œuvre ? Je souhaite réellement pouvoir t'aider dans le passage de la SFML2 au C++11 qui est mon outil de travail le plus précieux ;) .

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Implémentation du C++11 ?
« Réponse #27 le: Mai 13, 2013, 08:09:44 am »
Pour les enums, j'ai répondu sur le tracker directement.

Citer
Autre question, comment peut-on faire un pull lié au C++11 ? faut-il le nommer d'une façon particulière ? Y a-t-il de la compilation conditionnelle à mettre en œuvre ? Je souhaite réellement pouvoir t'aider dans le passage de la SFML2 au C++11 qui est mon outil de travail le plus précieux
Attend au moins que je démarre la tâche, et que je réflechisse à comment mettre en place la gestion conditionnelle au niveau du code. Ensuite ce sera comme d'hab ;)
Laurent Gomila - SFML developer