What (if any) are some potential problems with a C++ macro usage like this? Would an inline function be a more appropriate solution?