In #43, @raidenluikang requests that more macro guarding should be added on windows.
And add more macro for detection Windows, for ex., boost predef uses these macros:
_WIN32
_WIN64
__WIN32__
__TOS_WIN__
__WINDOWS__
@raidenluikang Can you elaborate why this is necessary? Is the current state broken in any way?