[c++] How do I make a C++ macro behave like a function?