Quote Originally Posted by UnderDog
To me both the statements sound about the same. The translation unit is in most cases equivalent to a file under compilation, so I understand. There may be subtle differences, but many people use the terms interchangeably.
Quote Originally Posted by gstercken
Sorry, I still don't see the contradiction. The #included header files are treated as if their content were actually part of the source (.cpp) file - the translation unit.
Quote Originally Posted by cilu
There is no contradiction, because the #include are expanded during the pre-processor phase of translation. All that is in headers included in a source file end up being part of the source file.
http://msdn2.microsoft.com/en-us/lib...ka(vs.85).aspx
Thanks for all of your replies. I was aware of the phases of translation, but thanks for the explanation none-the-less. Allow me to clear up the confusion:

You guys, and the MSDN docs, say:
"file" = "translation unit" = [.cpp file + #included .h files]

And, silly me, was thinking:
"file" = [a single .cpp or .h file] != [.cpp file + #included .h files]

(If the docs mean the 'translation unit', it should simply say 'translation unit'. 'file' is rather misleading, don't you think? Ignore your experience, and imagine a newcomer, and it becomes obvious.)

Ok, #2 solved. Thanks! Ok, let me read over your replies to issue #1.