Personally, I don't like this.  I think it's far too many levels of indirection in the preprocessor.  I'd personally prefer plain old functions, but I do realise that they don't always optimize properly.  I just don't feel that these two lines are wonderfully clear enough to justify how you got them.