using cpp macros