Support GCC's __INCLUDE_LEVEL__ preprocessor macro
GCC's __INCLUDE_LEVEL__ macro gives you the current nesting level of the include file you're in.
In my project, I have internal header files intended only to be included in source files and not in any header files so I'm using:
#if __INCLUDE_LEVEL__ != 1
#error Don't include this file in a header file
as a sanity check. It would be nice if MSVC supported this.