In visual studio 2015 community version I do a debug build with the following file structure.
A.cpp B.cpp that includes A.cpp C.cpp that includes A.cpp and B.cpp main.cpp that includes A.cpp, B.cpp and C.cpp
So when I change A.cpp in debug mode I get recompiled only A.cpp and main.cpp, but when I go to Release build mode, I get recompiled only A.cpp. Also I get some messages like:
In Release mode compile: 0 of 17 functions ( 0.0%) were compiled, the rest were copied from previous compilation.
In Debug Mode Compile: Skipping... (no relevant changes detected)
I was expecting to get recompiled all files as I include A.cpp in all files, and I changed it.
P.S. I know it is wired to include .cpp file but this is just some experiment, that I would like to understand how it works.