/* Unit1.cpp 9: */int main() { /* Unit1.cpp 10: */std::cout << "A 2" << &std::endl; /* Unit1.cpp 11: */return 0;
which is again correct. This is strange since I thought that bcc32 was just supposed to call cpp32 for the pre-processing. I can submit this as a bug to Borlands QualityCentral if you like (but don't hold your breath).
Cheers
Russell
Paul Mensonides wrote:
Russell Hind wrote:
#define A() 1 #define B(m) m 2
B(A)
I've run the above through the preprocessor and heres the output
/* Unit1.cpp 1: */ /* Unit1.cpp 2: */ /* Unit1.cpp 3: */ /* Unit1.cpp 4: */A 2
Tested using the preprocess option with BCB6Pro Update 4. This looks like what you were hoping for. If you'd like me to test anything else then just let me know.
Thanks Russell.
What happens if you compile it all the way, i.e. with a compileable example:
#include <iostream>
#define A() 1 #define B(m) m 2
#define STR(x) STR_D(x) #define STR_D(x) #x
int main() { std::cout << STR(B(A)) << &std::endl; return 0; }
When this program is executed, it should output "A 2", not "A2".
The reason that I ask is that the only thing I have is the free command line tools. The included preprocessor, cpp32.exe, produces the correct output. The compiler proper, bcc32.exe, does not. In other words, the behavior is/was different with the separate preprocessor vs. the "integrated" preprocessor.
Regards, Paul Mensonides
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost