Hi guys, why some compilers don't want to compile this: main.cpp #include "func.h" int main() { func(); return 0; } func.h void func() { std::cout << "Hello\n"; } It requires to include iostream to header file, but as i know at the preprocessing stage func.h together with the iostream will be inserted into the main.cpp and compiled as a translation unit.