En ese momento estaba leyendo el "C ++ efectivo" escrito por Meyers y encontré el término "unidad de traducción".
¿Podría alguien darme una explicación de:
1) ¿Qué es exactamente?
2) ¿Cuándo debería considerar usarlo al programar con C ++?
3) Si está relacionado solo con C ++, o puede usarse con otros lenguajes de programación
Puede que ya lo use sin saber el término ...
Respuestas:
Desde aquí : ( enlace de máquina de wayback )
fuente
Una unidad de traducción es, para todos los efectos, un archivo (.c / .cpp), una vez finalizado, incluidos todos los archivos de encabezado.
http://msdn.microsoft.com/en-us/library/bxss3ska%28VS.80%29.aspx
fuente
Una pregunta difícil de responder definitivamente. Los estados estándar de C ++:
Entonces, para la mayoría de las intenciones y propósitos, una unidad de traducción es un único archivo fuente C ++ y el encabezado u otros archivos que incluye a través del mecanismo de preprocesador #include.
Con respecto a sus otras preguntas:
No puede no considerarlo: las unidades de traducción son la base de un programa C ++.
Otros lenguajes tienen conceptos similares, pero su semántica será sutilmente diferente. La mayoría de los otros idiomas no usan un preprocesador, por ejemplo.
fuente
El libro lo deja bastante claro. Cuando Meyers se refiere a una "Unidad de traducción", se refiere a un archivo de código fuente.
fuente
Además de la ODR, la unidad de traducción es importante en la definición de espacios de nombres sin nombre, que reemplaza uno de los viejos usos de "estático".
Supongo que todavía no tengo suficientes puntos para agregar un comentario debajo de la respuesta principal.
fuente
Una unidad de traducción es el código que se pasa al compilador propiamente dicho. Esto normalmente significa la salida de ejecutar el preprocesador en el archivo .c.
fuente
Los programas C y C ++ consisten en uno o más archivos fuente, cada uno de los cuales contiene parte del texto del programa. Un archivo fuente, junto con sus archivos de inclusión (archivos que se incluyen utilizando la directiva de preprocesador #include) pero que no incluye secciones de código eliminadas por directivas de compilación condicional como #if, se denomina "unidad de traducción".
fuente
Según MSDN : los programas C y C ++ constan de uno o más archivos fuente, cada uno de los cuales contiene parte del texto del programa. Un archivo fuente, junto con sus archivos de inclusión (archivos que se incluyen utilizando la directiva de preprocesador #include) pero que no incluye secciones de código eliminadas por directivas de compilación condicional como #if, se denomina "unidad de traducción".
fuente
Cada archivo cpp / c (implementación) se convertirá en encabezados de unidad de traducción (es decir, archivo de objeto (.obj)) en el archivo cpp se reemplazará con el texto real de los archivos de encabezado.
fuente
Como han dicho otros, una unidad de traducción es básicamente el contenido de un archivo fuente después del preprocesamiento. Es la producción más importante en la gramática del lenguaje; solo necesitaría preocuparse si estuviera escribiendo un compilador C o C ++.
fuente
En mi opinión, una "unidad de traducción" es típicamente un único archivo fuente "post-procesamiento". Puede obtener más detalles en esta página de MSDN. http://msdn.microsoft.com/en-us/library/bxss3ska(v=vs.80).aspx
fuente