C'est quoi l'objectif final de toute ces bidouilles, avoir de la généricité tout en gardant une vérification de type ?
Dans le cas des concepts, l'interet c'est de faire verifier par le compilateur que l'argument d'un template presente bien les proprietes (fonctions/types) necessaires pour le bon fonctionnement du template en question. Ca va permettre d'eviter les messages d'erreurs types 500 lignes, avec a la place un vrai message intelligible. C'est un vrai progrès par rapport au duck-typing de la situation actuelle.
est-ce que c'est utile pour 90% des personnes qui developpent des logiciels ? ou est-ce que l'investissement de temps a apréhender tout ces concepts est récupéré derrière et apporte vraiment quelque chose ?
Si on limitait la cible a 90% du public, on utiliserait windows, non ? Plus serieusement, c'est clair que C++ est un langage complexe, mais on n'est pas obligé non plus de mettre en oeuvre toute cette complexité. Pour réaliser des choses simples, on peut rester simple (cf Qt), mais devant des problemes complexes, on est bien content de trouver tout le support necessaire dans le langage (cf Boost.Graph pour des graphes de grande taille).
Sinon, je plussoie fortement loufoque: si on ne devait retenir qu'une seule chose de C++, c'est le RAII pour la gestion des ressources.
[^] # Re: C++ : RAII et programmation générique
Posté par shbrol . En réponse à la dépêche Sortie de GCC 4.3. Évalué à 2.
Dans le cas des concepts, l'interet c'est de faire verifier par le compilateur que l'argument d'un template presente bien les proprietes (fonctions/types) necessaires pour le bon fonctionnement du template en question. Ca va permettre d'eviter les messages d'erreurs types 500 lignes, avec a la place un vrai message intelligible. C'est un vrai progrès par rapport au duck-typing de la situation actuelle.
est-ce que c'est utile pour 90% des personnes qui developpent des logiciels ? ou est-ce que l'investissement de temps a apréhender tout ces concepts est récupéré derrière et apporte vraiment quelque chose ?
Si on limitait la cible a 90% du public, on utiliserait windows, non ? Plus serieusement, c'est clair que C++ est un langage complexe, mais on n'est pas obligé non plus de mettre en oeuvre toute cette complexité. Pour réaliser des choses simples, on peut rester simple (cf Qt), mais devant des problemes complexes, on est bien content de trouver tout le support necessaire dans le langage (cf Boost.Graph pour des graphes de grande taille).
Sinon, je plussoie fortement loufoque: si on ne devait retenir qu'une seule chose de C++, c'est le RAII pour la gestion des ressources.