Existe-t-il, quelque part, un script, un fichier source ou autre, librement utilisable / accessible, capable de mesurer la conformité d'un compilateur C ++ donné?
Par exemple, le test Acid3 pour les navigateurs: http://acid3.acidtests.org/
Les résultats dont je rêve seraient une note de pourcentage globale (ou plusieurs notes, une pour chaque norme, par exemple, c ++ 98, c ++ 11, c ++ 14, etc.), puis des tests détaillés avec "succès" ou "échec" pour chacun d'eux.
Contexte: J'ai eu une discussion au travail sur le boost et certains compilateurs contestés. Mon interlocuteur a parlé de boost étant un projet académique, car cela ne fonctionnera pas dans les principaux compilateurs C ++, et moi répondant que les compilateurs mentalement handicapés ne devraient pas compter. Être capable de mesurer avec du code la conformité réelle d'un compilateur aiderait à la fois à évaluer le compilateur et à découvrir les "cas d'angle" qui devraient être évités dans le code multiplateforme compilé avec eux.
Modifier: 2013-06-22
Pas une réponse, mais apparemment, le comité C ++ travaille sur le sujet:
SG10, Test de fonctionnalité: Clark Nelson (Intel). Enquête pour savoir si et comment normaliser un moyen pour le code portable de vérifier si un produit C ++ particulier implémente encore une fonctionnalité, alors que nous continuons d'étendre la norme.
Réponses:
Une façon de tester la conformité d'un compilateur C ++ donné est d'exécuter une (grande) suite de tests, c'est-à-dire un tas de fichiers C ++ qui testent tous les aspects du langage.
Les suites de tests bien connues sont les suites de tests gcc et llvm. Ceux-ci testent toutes sortes d'aspects du compilateur, y compris évidemment la conformité. Cependant, il est difficile d'évaluer particulièrement la conformité, car (à ma connaissance), aucun rapport spécial n'est généré sur la conformité.
Dans ce domaine, vous avez:
Il existe de nombreuses suites de tests pour tester la conformité C / C ++. Hélas, ce sont toutes des licences commerciales de l'ordre de 10k-40k.
la source
La chose la plus proche que je connaisse est dans le contexte d'une version standard spécifique . De même, il existe des articles de blog qui contiennent un contenu similaire. Cependant, je ne connais pas de corps, de test ou de suite de facto ou de jure qui se prononce sur ces questions. Même isocpp.org ne semble pas avoir de ressources de conformité actuellement. Le plus proche que vous pouvez obtenir est probablement les tableaux de conformité spécifiques à chaque fournisseur, ce qui est au mieux incohérent.
par exemple Clang , GCC , MSVC , Intel
Il n'y a vraiment que quelques compilateurs compétitifs (au moins dans l'espace x86 / x64 - je suppose que c'est aussi le cas pour les plates-formes moins populaires), mais je conviens qu'il serait très agréable d'avoir une référence, surtout maintenant que la norme est prendre de la vitesse.
la source
Je ne suis au courant d'aucun test de normalisation, bien que l'URL suivante soit le site officiel du comité de normalisation http://www.open-std.org/jtc1/sc22/wg21/ .
De plus, beaucoup de choses trouvées dans Boost font leur chemin dans la norme C ++. Selon le Dr Kenneth Sundberg de l'Université d'État de l'Utah.
Je ne peux pas non plus en vérifier l'accréditation pour le moment, j'essaie toujours de déterminer si elle est crédible, mais le groupe Google à https://groups.google.com/forum/?fromgroups#!forum/comp.std .c ++ prétend qu'aucun test officiel n'existe.
la source