
24 Apr
2012
24 Apr
'12
4:22 a.m.
[Paul Mensonides]
It isn't that. VC++ doesn't even implement the preprocessor correctly for C89. Essentially, the macro expansion algorithm appears to be fundamentally broken. One small example: #define A() 123 #define B() () A B() // should expand to A() (and does) #define C() A B() C() // should *still* expand to A() (but instead expands to 123)
I have filed this as DevDiv#407151 "VC's preprocessor considered harmful (to Boost.Preprocessor)" in our internal database, including a copy of your entire mail. If it were within my power to fix this for you, I would - but I am not a compiler dev. Stephan T. Lavavej Visual C++ Libraries Developer