225 votes

Ce qui est une « unité de traduction » en C++

Bonjour tout le monde je lis à l’époque le « C++ efficace » écrit par Meyers et suis tombé sur le terme « unité de traduction ».

Pourrait quelqu'un s’il vous plaît me donner une explication :

1) ce qui exactement il est

2) quand est-ce je dois envisager d’utiliser lors de la programmation avec C++

3) si elle est liée uniquement à C++, ou il peut être utilisé avec d’autres langages de programmation

Je pourrais l’utiliser déjà sans connaître le terme...

254voto

JeffH Points 6059

À partir d' ici:

Selon la norme C++: Une unité de traduction est l'unité de base de compilation en C++. Il se compose de le contenu d'un fichier source unique, plus le contenu de tous les fichiers d'en-tête directement ou indirectement inclus, moins de ces lignes, qui ont été ignorés à l'aide conditionnelle de prétraitement des déclarations.

Une seule unité de traduction peut être compilé dans un fichier de l'objet, de la bibliothèque, ou programme exécutable.

La notion d'une unité de traduction est le plus souvent mentionné dans les contextes de la Définition de la Règle, et modèles.

63voto

Paul Betts Points 41354

Une unité de traduction est à toutes fins utiles un fichier (.c / .cpp), une fois terminé, y compris tous les fichiers d'en-tête.

http://msdn.microsoft.com/en-us/library/bxss3ska%28VS.80%29.aspx

9voto

Ed S. Points 70246

Le livre le rend suffisamment clair. Lorsque Meyers se réfère à une "unité de traduction", il désigne un fichier de code source.

4voto

Allan Stokes Points 379

En plus de l'ODR, l'unité de traduction est importante dans la définition des espaces de noms non nommés, qui remplace l'une des anciennes utilisations de "statique".

Je suppose que je n'ai toujours pas assez de points pour ajouter un commentaire sous la première réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X