Take a look at the following SO link -- https://stackoverflow.com/questions/48234476/c-size-t-doesnt-need-cstddef-header
I think what you are seeing is behavior exhibited by the VC++ compiler, not the implicit inclusion of header files. If I open a standard command prompt window and run cl.exe without setting any of the usual environment variables set by a Developer Command Prompt (include file, library paths, etc.) your code will still compile although it will not link.