Трудный вопрос, чтобы ответить окончательно. Стандарт C ++ гласит:
Текст программы хранится в единицах, называемых исходными файлами в этом международном стандарте. Исходный файл вместе со всеми заголовками (17.4.1.2) и включенными исходными файлами (16.2) через директиву предварительной обработки #include, за исключением любых строк исходного текста, пропущенных любой из директив предварительной обработки условного включения (16.1), называется единицей перевода. [Примечание: не обязательно переводить все программы на C ++ одновременно. ]
Таким образом, для большинства целей и задач единица перевода - это отдельный исходный файл C ++ и заголовок или другие файлы, которые он включает с помощью механизма препроцессора #include.
По поводу других ваших вопросов:
2) Когда я должен рассмотреть возможность его использования при программировании на C ++
Вы не можете не учитывать это - единицы перевода являются основой программы на C ++.
3) Если он связан только с C ++ или может использоваться с другими языками программирования
У других языков есть подобные понятия, но их семантика будет немного отличаться. Например, большинство других языков не используют препроцессор.