In this case, let's just put aside the non-standard code presented by the OP plus the seemingly 'impossible' basic requirements. It's quite obvious that the "void main()" etc. is not the key topic here, at least from the OP's viewpoint.
Again, like I wrote above, a simple #define solves this 'problem' in 100% standard and portable C++ code. As far as I can see, the only good outcome of this exercise for the OP would be to realize the possible dangers of using macros (e.g. using #defines carelessly).
It would actually be nice to know how come you are facing this dilemma, would you care to share that with us?
Ok ... I'll admit, I'm lost. I used #defines to declare token strings. I'm not seeing how that will do anything?