2010-08-27 4 views
1

J'essayais de compiler un court exemple de programme (134 lignes) en utilisant beaucoup de modèles, et je n'avais rien de moins que 500 lignes de code mystérieux vraiment profond dans la bibliothèque de modèles, ce qui est assez ennuyeux et inutile .modèle paradigm et avertissement explicite

Mon point n'est pas de savoir comment résoudre ce problème (probablement ajouter le chemin approprié au projet ..), mais j'ai déjà eu ce problème plusieurs fois, et donc j'ai plutôt une question ouverte à l'esprit: y at-il un moyen d'améliorer la compréhensibilité des avertissements liés aux modèles? Avez-vous des problèmes similaires? Comment les résolvez-vous habituellement?

+0

La question est totalement floue. Vous avez * du code * avec * un problème peu clair *. Aucune chance de trouver des solutions à moins de montrer quelques exemples expliquant ce qui ne va pas. – sharptooth

+1

Pas difficile pour moi. Il y a eu une question similaire ici il y a quelques jours. Fondamentalement, certains outils de filtrage peuvent analyser la sortie de GCC et simplifier certains avertissements, en faisant diverses suppositions qui sont vraies pour un usage typique. Mais, les avertissements du compilateur sont très spécifiques au compilateur, et il n'y a pas de solution portable. Les extensions "Concepts", une fois planifiées pour C++ 0x, étaient en partie destinées à répondre à cette préoccupation, mais ont malheureusement été omises en raison de contraintes de temps/complexité. Espérons qu'un jour ... très excitant, humm ... concept. –

+0

@sharptooth: Je ne cherche pas de solution à mon problème spécifique, mais je voudrais savoir si c'est un problème courant d'obtenir des avertissements de compilateur peu clairs liés à l'utilisation de modèles, et s'il est possible de résoudre ce problème (c.-à-d. fournir un message explicite et court pointant vers le mauvais extrait de code écrit par l'utilisateur) – Nielk

Répondre

2

De wikipedia:

messages d'erreur impliquant des modèles ont tendance à être très long et difficile à déchiffrer. Ce problème a été considéré comme si grave qu'un certain nombre d'outils ont été écrits qui simplifient et colorent les messages d'erreur liés à la STL pour les rendre plus compréhensibles.

Il existe des outils pour améliorer la compréhensibilité de ces messages d'erreur, notamment stlfilt.

+0

En outre, je pense que les messages d'erreur Clang ont tendance à être plus clair en raison de l'utilisation de 'typedef' ... mais comme je l'ai obtenu de la doc, je ne suis pas encore sûr de sa validité. –

Questions connexes