There is no reason for any of these macros to be functions, especially considering they will most likely be in-placed by the compiler.
Making them functions will also increase their performance, as their parameters will not be recalculated for every use. Speaking of recalculations, there are also cases where macros like these are unusable no matter their bracket enclosure (any impure function will break if passed as any multi-use parameter of any macro).
There is no reason for any of these macros to be functions, especially considering they will most likely be in-placed by the compiler.
Making them functions will also increase their performance, as their parameters will not be recalculated for every use. Speaking of recalculations, there are also cases where macros like these are unusable no matter their bracket enclosure (any impure function will break if passed as any multi-use parameter of any macro).