If the function is small enough (and this one probably is), the compiler will inline it if compiling in Release mode. We try to avoid macros mainly because they have no type safety.