Citation:
Envoyé par
germinolegrand
Un joli sucre syntaxique, qui néanmoins ne fait de tord à personne :).
A ce que je sache ce n'est pas juste du sucre syntactique puisqu'on ne pouvait pas faire ce que la feature propose auparavant.
Citation:
Je les aimes pas beaucoup mais bon, c'est peut-être parce qu'on ne peut pas faire autre chose que de la récursivité actuellement (je ne suis pas très adroit avec), ça va peut-être arranger les choses :).
Il y aurait des indices comme quoi il y a des cas ou la limitation de la recursivite combine a l'utilisation de constexpr pour une fonction utilisee avec des paramettres runtime faisait des problemes de performance. Du coup, meme au dela de l'aspect pratique, visiblement ca regle des probleme de performance variables selon les utilisations aussi.
Citation:
Là oui, ça peut être pratique, pour les unique_ptr notamment.
C'est clair! J'ai tout un tas de cas ou j'ai du organiser mon code differement de la maniere la plus evidente parceque cette feature manquait.
Citation:
Là ils en ont fait une belle... je n'ai pas compris pourquoi ils n'ont pas inliné le namespace std uniquement pour ça. Cela rend donc inutilisables ces petits rien pourtant forts utiles en dehors d'une using namespace std;. Comment pourra-t-on dire d'avoir la main légère sur les using namespace (je les évite autant que possible pour ma part !) si la norme impose le contraire ? D'autant plus que cela crée un énorme déséquilibre entre le code dans les headers et celui des .cpp puisque si les using namespaces sont à éviter (selon moi) dans les .cpp actuellement, ils sont carrément à proscrire dans les headers (pour les raisons que l'on sait tous). Et maintenant que l'on peut initialiser ses attributs dans la déclaration de la classe, il ne me semble pas incongru de pouvoir trouver m_str = "default string"s; ou m_time = 22h;. Donc soit je n'ai pas compris le code contenu dans le proposal, soit les proposals sont acceptés en dépit du bon sens sans corrélation avec les autres éléments ajoutés en même temps... bref, que l'on m'explique.
Si j'ai bien compris les operateurs sont definis dans des namespaces sous std mais ils sont bien inline dans std. Ou j'ai rien compris non plus?
Citation:
Ça c'est bien dommage que ça soit nécessaire pour bug-fix.
Les malloc les débutants connaissent plus, bientôt même le new ils connaîtront plus :mouarf:. Bon l'uniformisation c'est sympa... mais, le nombre de auto va encore exploser. Mais j'y reviens.
J'ai pas compris de quel bugfixe tu parles?
Citation:
Ça, je sens que ça va faire mal. Vous imaginez mettre auto dans l'interface d'une bibliothèque ? Les utilisateurs vous tomberont dessus à bras raccourcis, et vous mangeront tout crû, avec de la sauce à la menthe. Beurk, pauvres lions.
A ce que je sache, auto ne peut pas etre utilise en type de retour si il n'y a pas l'implementation de la fonction visible au compilateur (comme actuellement quand tu as aussi decltype).
Donc je vois pas bien le probleme... sauf si la fonction est longue et dans le header et n'est pas template evidemment, ou ca rendrais le code emoins lisible.
Ca fais partie des features qui seront certainement abusees un temps, mais je pense qu'on a pas de moyen d'en rechaper si on veut pouvoir aussi ecrire du code generique simple.
Citation:
La fonctionnalité est bien, et pour rien au monde je ne voudrais qu'elle soit retirée (bon ok, mais faudra allonger le million). Je crains qu'à l'instar des shared_ptr on en mette partout "parce que y'a pas besoin de réfléchir" (sic !). Il faudra de solides guidelines pour encadrer ça.
C'est clair.
Citation:
Si je crains pour auto c'est pour une bonne raison (pas parce que je ne sais pas ce qui est derrière, ce qui fut le cas jadis :) ). La raison est que les parseurs des IDE, aussi ingénieux soit-ils, ne sont pas des compilateurs. Or ce qui se passe actuellement, c'est qu'au moindre auto, au moindre decltype, la code-completion disparait. Et c'est dramatique. Dramatique, parce que si vous gagnez en temps et en lisibilité en faisant disparaître les monstrueux itérateurs, vous voilà revenu à l'âge de pierre : il vous faut connaître toutes les méthodes par cœur, de leur nom sans la moindre faute d'orthographe à leurs arguments.
Alors je ne sais pas ce que tu utilises comme IDE mais je n'ai pas eu ce probleme avec auto, je ne l'ai eu qu'avec des lambda. Je pense pas que ca s'ameliorera avec les lambda generiques (qui ajoutent auto donc :aie: ) mais je ne pense pas que ca sera de vrai problemes pour les implementateur de IDE, parceque depuis qu'il y a LLVM dispo et gratos, ils n'ont plus aucune excuse.
Citation:
Le auto j'en mets partout, autant que je peux. Parce que c'est bon tant de généricité gratuite pour si peu cher. Aussi j'espère fortement que les parseurs d'IDE vont trouver le moyen de contourner auto.
Toutefois je suis globalement content de ce qui se prépare :).
Pareil :D