Search code examples
c++c++-faq

What is a "translation unit" in C++?


I am reading at the time the "Effective C++" written by Scott Meyers and came across the term "translation unit".

Could somebody please give me an explanation of the following:

  1. What exactly is it?

  2. When should I consider using it while programming with C++?

  3. Is it C++ only, or can it be used with other programming languages?

I might already use it without knowing the term...


Solution

  • From here: (wayback machine link)

    According to standard C++ (wayback machine link) : A translation unit is the basic unit of compilation in C++. It consists of the contents of a single source file, plus the contents of any header files directly or indirectly included by it, minus those lines that were ignored using conditional preprocessing statements.

    A single translation unit can be compiled into an object file, library, or executable program.

    The notion of a translation unit is most often mentioned in the contexts of the One Definition Rule, and templates.