Конвертация строковых литералов-идентификаторов в числа в compile time?
#define MSG_ADD_OBJECT 0
#define MSG_REMOVE_OBJECT 1

int64 a = MSG_ADD_OBJECT; // a = 0
int64 b = MSG_REMOVE_OBJECT; // b = 1
Второй вариант:enum MSG {ADD_OBJECT, REMOVE_OBJECT};

// Можно использовать два варианта:
int64 a = ADD_OBJECT; // a = 0
int64 b = MSG::REMOVE_OBJECT; // b = 1
Это называется пользовательский литерал
habrahabr.ru/post/140357