#include <cstdint>
static uint16_t MAGIC_NUMBER_VAL = 7076;
#define convert_func(NUM) hexify(NUM)
#define hexify(NUM) 0x ## NUM
static const uint16_t val = convert_func(MAGIC_NUMBER_VAL); //0x7076
static const uint16_t val_tag = MAGIC_NUMBER_VAL;
I2luY2x1ZGUgPGNzdGRpbnQ+CgpzdGF0aWMgdWludDE2X3QgTUFHSUNfTlVNQkVSX1ZBTCA9IDcwNzY7CgojZGVmaW5lIGNvbnZlcnRfZnVuYyhOVU0pIGhleGlmeShOVU0pCiNkZWZpbmUgaGV4aWZ5KE5VTSkgMHggIyMgTlVNCgpzdGF0aWMgY29uc3QgdWludDE2X3QgdmFsID0gY29udmVydF9mdW5jKE1BR0lDX05VTUJFUl9WQUwpOyAvLzB4NzA3NgpzdGF0aWMgY29uc3QgdWludDE2X3QgdmFsX3RhZyA9IE1BR0lDX05VTUJFUl9WQUw7Cg==
prog.cpp:6:21: error: unable to find numeric literal operator ‘operator""xMAGIC_NUMBER_VAL’
#define hexify(NUM) 0x ## NUM
^~
prog.cpp:5:27: note: in expansion of macro ‘hexify’
#define convert_func(NUM) hexify(NUM)
^~~~~~
prog.cpp:8:29: note: in expansion of macro ‘convert_func’
static const uint16_t val = convert_func(MAGIC_NUMBER_VAL); //0x7076
^~~~~~~~~~~~