MSVC is known to have a buggy default preprocessor, try with
/Zc:preprocessor
. If this doesn't help, please prepare a minimal reproducible example, I'm non reading this whole thing either.